Легкое программирование Начало работы Примеры кода Пример работы с аналоговыми входами Использование аналоговых входов и выходов на MAXI Подключение DS18B20 к Controllino Mini Библиотека ПО для работы Блог
Пример работы с аналоговыми входами Здесь находится переведенный пример кода из библиотеки Controllino. С его помощью вы узнаете, как можно работать с аналоговыми входами. #include <Controllino.h> /* Использование библиотеки CONTROLLINO позволяет использовать псевдонимы CONTROLLINO_xx в вашем скетче. */ /* CONTROLLINO - Аналоговые входы, Версия 01.00 Считывает преобразованные аналоговые значения с винтовой клеммы входа A0 CONTROLLINO. Есть совместимость с CONTROLLINO MINI, MAXI и MEGA. Важная информация! Пожалуйста, перед загрузкой в CONTROLLINO выберите нужную целевую плату в меню Инструменты (Tools) > Плата (Board) -> Controllino MINI / MAXI / MEGA. (Обратитесь к https://github.com/CONTROLLINO-PLC/CONTROLLINO_Library, если вы не видите CONTROLLINO в меню Arduino IDE ( IDE - интегрированная среда разработки) Инструменты (Tools)-> Плата (Board).) Этот пример скетча требует внешнего источника питания 12 В или 24 В для вашего CONTROLLINO и потенциометра. Вы также можете попробовать подключить вход винтовой клеммы A0 непосредственно к напряжению 12 В / 24 В или GND (заземлению), чтобы увидеть максимальные / минимальные значения. */ // Функция установки запускается один раз после нажатия кнопки сброса (кнопка CONTROLLINO RST) или подключения источника питания (USB, либо внешнего источника 12В / 24В) к CONTROLLINO. void setup() { // определить необходимый пин в качестве пина входа pinMode(CONTROLLINO_A0, INPUT); // пожалуйста, обратите внимание, что CONTROLLINO MINI имеет еще 5 аналоговых входов A1 - A5 // пожалуйста, обратите внимание, что CONTROLLINO MAXI имеет еще 9 аналоговых входов A1 - A9 // пожалуйста, обратите внимание, что CONTROLLINO MEGA имеет еще 15 аналоговых входов A1 - A15 // Все они работают так же, как и A0. // Определить последовательное соединение со скоростью 9600 бит в секунду. // Использовать (Инструменты) Tools-> SerialMonitor для просмотра сообщений. Serial.begin(9600); } // функция цикла работает снова и снова бесконечно void loop() { int measurementResult; int digitalValue; int measurementResultVoltage; // считывание значения входа винтовой клеммы A0 measurementResult = analogRead(CONTROLLINO_A0); // функция analogRead возвращает число от 0 (для 0 В = подключения к земле) до 1023 для максимального напряжения (которое зависит от напряжения питания) Serial.print("Аналого-цифровое преобразование на входе A0 выдает: "); Serial.println(measurementResult); // преобразовывать полученное значение в напряжение в случае внешнего источника питания 12 В measurementResultVoltage = map(measurementResult, 0, 1023, 0, 16); // поскольку делители напряжения имеют некоторый запас безопасности Serial.print("Отображение результатов шкалы 0-12 В для: "); Serial.print(measurementResultVoltage); Serial.print(" В или "); measurementResultVoltage = map(measurementResult, 0, 1023, 0, 15200); // поскольку делители напряжения имеют некоторый запас безопасности Serial.print(measurementResultVoltage); Serial.println(" мВ"); // преобразовывать полученное значение в напряжение в случае внешнего источника питания 24 В measurementResultVoltage = map(measurementResult, 0, 1023, 0, 31); // поскольку делители напряжения имеют некоторый запас безопасности Serial.print("Отображение результатов шкалы 0-24 В для: "); Serial.print(measurementResultVoltage); Serial.print(" В или "); measurementResultVoltage = map(measurementResult, 0, 1023, 0, 30400); // поскольку делители напряжения имеют некоторый запас безопасности Serial.print(measurementResultVoltage); Serial.println(" мВ"); // Итак, если вам нужно рассчитать измеренное напряжение, вам нужно знать напряжение питания устройства! // считывание логического представления (LOW (НИЗКОЕ) или HIGH (ВЫСОКОЕ), 0 или 1) аналогового значения digitalValue = digitalRead(CONTROLLINO_A0); Serial.print("Логическое представление аналогового значения "); if (digitalValue == LOW) { Serial.println("НИЗКОЕ"); } else { Serial.println("ВЫСОКОЕ"); } // Обратите внимание, что гарантированные логические уровни имеют следующие пороговые значения: // НИЗКОЕ: 0В - 3,6V (для Vin = 12В) // ВЫСОКОЕ: 9В - 13,2В (для Vin = 12В) // НИЗКОЕ: 0В - 7,2В (для Vin = 24В) // ВЫСОКОЕ: 18В - 26,4В (для Vin = 24В) // // логическое состояние между этими диапазонами не определено! Serial.println("---------------------------------------------------------"); delay(3000); // трехсекундная задержка для лучшей читаемости распечатанных результатов } /* Конец примера. Посетите наш сайт https://controllino.biz/ или https://github.com/CONTROLLINO-PLC/CONTROLLINO_Library или свяжитесь с нами по адресу info@controllino.biz, если у вас есть какие-либо вопросы или проблемы. */ /* 2017-01-10: Скетч был успешно протестирован с помощью Arduino 1.6.13, Controllino Library 1.0.0 и CONTROLLINO MINI, MAXI и MEGA. */