Arduino + Octopus Smoke Sensor MQ-2 + LCD
16.06.2013 16:20Здравствуйте.
Цель: Вывести данные с датчика на дисплей.
Нам понадобится:
1. Arduino

2. Octopus Smoke Sensor MQ-2

3. LCD

4. Потенциометр или резистор на 1,8 кОм

Вот мои инструменты :
И так давайте подключим все.
Сперва подключим LCD к Arduino.
Вот схема подключения:

- Над первой ножкой втыкаем провод от GND, расположенном на Arduino.
- Вторую ножку экрана соединяем с 5 вольтами
- Над третьим втыкаем провод от потенциометра (будет регулировать контрастность экрана). Сам потенциометр имеет 3 ножки. На одну подаём 5 вольт на другую землю (черный и красный провод на картинке), со средней ножки мы как раз и будем "забирать" нужное для конкретной контрастности напряжение.
- Четвертый соединим с 12 разъёмом на Arduino (зеленый провод)
- Пятый с GND (черный провод)
- Шестой с 10 разъёмом на Arduino (зеленый провод)
- 7,8,9,10 оставляем пустыми
- 11 с 5 разъёмом на Arduino (зеленый провод)
- 12 с 4 разъёмом на Arduino (зеленый провод)
- 13 с 3 разъёмом на Arduino (зеленый провод)
- 14 с 2 разъёмом на Arduino (зеленый провод)
- 15 через резистор с 5 вольтами (нужен для подсветки)
- 16 с GND (нужен для подсветки)
У вас не должно возникнуть никаких проблем.
Дальше нам нужно подсоединить дитчик.
Как мы видим у датчика 3 выхода.
- S - сигнал. Его мы подключим на pin A0 (Аналоговый вход)
- V - питание 5V. Его мы подключим к 5V на Arduino.
- G - это у нас Земля. Его также втыкаем в Arduino в пин GND(Ground).
Подключили? Если у вас все получилось, то я рад за вас :)
Давайте его запрограммируем! Открываем Arduino IDE.
Туда пишем:
#include
const int analogInPin = A0; // определяем наш датчик(A0 - аналоговый вход куда подключен наш датчик)
int sensorValue = 0; объявляем переменную для работы с датчиком
void setup() {
Serial.begin(9600); это для работы с Serial. В нашем случае он не обязателен, но пускай будет для вывода ошибок
lcd.begin(16, 2); наш размер LCD. Мой LCD поддерживает 16 символов и две строки.
}
void loop() {
sensorValue = analogRead(analogInPin); // считываем значения с датчика в переменную sensorValue
Serial.println(sensorValue); // выводим в Serial значения с датчика на всякий случай если вдруг не заработает LCD
if (sensorValue >= 500) {
lcd.setCursor(0, 0); // ставим курсор на 0 символ и 0 строку. Отсчет идет с нуля.
lcd.setCursor(0, 0);
lcd.clear();
lcd.print("Normal!");
lcd.setCursor(0, 1); // ставим курсор на вторую строку
lcd.print("Sensor = "); // на второй строке печатаем "Sensor = "
lcd.print(sensorValue); // показуем сколько нам выдает датчик
lcd.setCursor(0, 1);
delay(300); // повтор каждые 300 миллисекунд
Компилируем. У вас должно получится как на видео ниже.