You are on page 1of 3

Лабораторна робота 3

Аналоговий датчик вологості

Ціль. Ознайомитись роботою з датчиком вологості.

На основі ПРИКЛАДу 2 (дивись лекцію Аналоговий датчик вологості)


допишіть програму керування всією лінійкою світлодіодів.

В проекті використовується лінійка світлодіодів із 5 штук і напишемо


програму, коли світлодіоди в залежності від показань датчика спалахують по
черзі. Світлодіоди підключені до пінів 8,9,10,11,12. Датчик підключений до
аналогового піна А0.
Приклад написаний для керування трьома світлодіодами! Необхідно
дописати керуючу програму таким чином щоб працювала вся світлодіодна
панель.

Або можна використовувати код, який наведено у лекції (приклад 3 або 4)


але треба додати один-два світло діоди до проекту!

int potPin = A0; // Контакт, до якого підключено датчик


int ledCount = 5; // Кількість світлодіодів

int ledPins[] = {8,9,10,11,12}; // Контакти, до яких підключено


світлодіоди
void setup() {
Serial.begin(9600); //запускаємо монітор порту
for (int i = 0; i < 9; i++) {
pinMode(ledPins[i], OUTPUT); // ініціалізація пінів, до яких
підключено світлодіоди, в режим виведення
}
}

void loop() {
Serial.println(analogRead(potPin));

int sensorReading = analogRead(potPin); // Аналоговий вхід


int ledLevel = map(sensorReading, 0, 876, 0, ledCount);

if (0 < ledLevel && ledLevel <= 1)


{
digitalWrite (ledPins[0], HIGH);
digitalWrite (ledPins[1], LOW);
digitalWrite (ledPins[2], LOW);
digitalWrite (ledPins[3], LOW);
digitalWrite (ledPins[4], LOW);
}
else
{
digitalWrite (ledPins[0], LOW);
digitalWrite (ledPins[1], LOW);
digitalWrite (ledPins[2], LOW);
digitalWrite (ledPins[3], LOW);
digitalWrite (ledPins[4], LOW);
}
delay(10); // Очікування 10 мс

if (1 < ledLevel && ledLevel <= 2)


{
digitalWrite (ledPins[0], HIGH);
digitalWrite (ledPins[1], HIGH);
digitalWrite (ledPins[2], LOW);
digitalWrite (ledPins[3], LOW);
digitalWrite (ledPins[4], LOW);
}
else
{
digitalWrite (ledPins[0], LOW);
digitalWrite (ledPins[1], LOW);
digitalWrite (ledPins[2], LOW);
digitalWrite (ledPins[3], LOW);
digitalWrite (ledPins[4], LOW);
}
delay(10); // Очікування 10 мс

if (2 < ledLevel && ledLevel <= 3)


{
digitalWrite (ledPins[0], HIGH);
digitalWrite (ledPins[1], HIGH);
digitalWrite (ledPins[2], HIGH);
digitalWrite (ledPins[3], LOW);
digitalWrite (ledPins[4], LOW);
}
else
{
digitalWrite (ledPins[0], LOW);
digitalWrite (ledPins[1], LOW);
digitalWrite (ledPins[2], LOW);
digitalWrite (ledPins[3], LOW);
digitalWrite (ledPins[4], LOW);
}
delay(10); // Очікування 10 мс

You might also like