01.#include <LiquidCrystal.h> //Указываем библиотеку для LCD 02.LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);// Указываем номера выводов ДУИНО для подключения LCD 03.int voltage = 0; // Переменная для хранения данных считаных с АЦП вывода (НАПРЯЖЕНИЕ) 04.int current = 0; // Переменная для хранения данных считаных с АЦП вывода (ТОК) 05.float u = 0; // Переменная для вычислений (НАПРЯЖЕНИЕ) 06.float i = 0; // Переменная для вычислений (ТОК) 07.float p = 0; // Переменная для вычислений (МОЩНОСТЬ) 08.int del = 30; // Переменная для паузы 09.int ledPin = 13; // Переменная номера вывода подключения светодиода. 10.void setup() // Стартуем с настройками 11.{ 12.lcd.begin(16, 2); // Указываем что LCD будет 16 столбов по 2 строки 13.pinMode(ledPin, OUTPUT); // Указываем что 13 вывод это ВЫХОД. (светодиод) 14.} 15.void loop() // Стартуем 16.{ 17.{ 18.voltage = analogRead(5); // Указываем что данные считаные с аналогово вывода 5 заносим в переменную. 19.u = voltage/40.92; // Математика однако, с занесением данных в переменную "u" 20.lcd.setCursor(0, 0); // Указываем координаты/ первый 0 столбец, второй строка. 21.lcd.print("U="); // Рисуем 22.lcd.setCursor(2, 0); // Указываем координаты 23.lcd.print(u); // Берем данные из переменной и рисуем их на LCD 24.lcd.setCursor(6, 0); // Указываем координаты 25.lcd.print("V"); // Рисуем 26.delay(del); // Ждем 30 миллисекунд 27.} 28.{ 29.current = analogRead(4); // Указываем что данные считаные с аналогово вывода 4 заносим в переменную. 30.i = current/40.92; // Математика однако, с занесением данных в переменную "i" 31.lcd.setCursor(0, 1); // Указываем координаты/ первый 0 - столбец, второй строка. 32.lcd.print("I="); // Рисуем 33.lcd.setCursor(2, 1); // Указываем координаты 34.lcd.print(i); // Берем данные из переменной и рисуем их на LCD 35.lcd.setCursor(6, 1); // Указываем координаты 36.lcd.print("A"); // Рисуем 37.delay(del); // Ждем 30 миллисекунд 38.} 39.{ 40.p = u * i; // Математика из школьного курса физики 41.lcd.setCursor(8, 1); // Указываем координаты 42.lcd.print("P="); // Рисуем 43.lcd.setCursor(10, 1); // Указываем координаты 44.lcd.print(p); // Берем данные из переменной и рисуем их на LCD 45.lcd.setCursor(13, 1); // Указываем координаты 46.lcd.print("W "); // Рисуем 47.delay(del); // Ждем 30 миллисекунд 48.} 49.{ 50.digitalWrite(ledPin,HIGH); // Включаем светодиод 51.} 52.if (u <= 12) // Если напряжение на входе меньше 12 Вольт 53.{ 54.digitalWrite(ledPin,LOW); // Светодиод гасим 55.} 56.}
//////////////////////////////////////// ///Счетчик витков намоточного станка./// //////////////////////////////////////// Отображает на ЖК (8 символов, 2 строки) дисплее заданное и реальное количество витков. При достижении заданного количества витков, выдает цифровой сигнал на клемму OUT и сигнализирует звуком. Счетчик имеет 4 кнопки управления: сброс; +; -; прог. В режиме счета кнопки + и - не работают, кнопка сброс - сбрасывает в 0 реальные показания витков, кнопка прог - переводит счетчик в режим установки заданного количества витков. В этом режиме кнопки + и - увеличиват или уменьшают это значение, кнопка сброс - сбрасывает устанавливаемые показания в 0, кнопка прог - возвращает устройство в режим счета. При этом происходит запоминание заданного количества витков в энергонезависимой памяти устройства
Схема подключения: * LCD RS пин к цифр. выходу 11 * LCD Enable пин к цифр. выходу 10 * LCD R/W к Общему * LCD VO пин (пин 3) к ШИМ-выходу 9 * LCD D4 пин к цифр. выходу 8 * LCD D5 пин к цифр. выходу 5 * LCD D6 пин к цифр. выходу 7 * LCD D7 пин к цифр. выходу 6
зуммер пин 12 контраст пин 9 кнопка сброс пин 14 кнопка + пин 15 кнопка - пин 16 кнопка прог пин 17 вых синг пин 18 ик излучатель пин 19 ик приемник пин 4