Решил поделиться первым опытом в Arduino.
Заказал в https://robocraft.ru/shop вот такой комплект:
* Orduino-nano
* Символьный LCD экран 16×2 жёлто зелёный
* Макетную плату
* Блютус модуль(пока не применил)
* Датчик холла(пока не применил)
Как получил в руки посылку обрадовался как ребёнок!
И начал разбираться с игрушками!
Очень сомневался в совместимости nano с UNO они различаются только количеством пинов ШИМ.
А начал конечно с Blink. Для этого даже светодиод не пришлось подключать так как он есть на плате уже подключённый к D13.
Поморгал я светодиодом менял время паузы и решил попробовать ШИМ.
Но я не мог понять на каком пине есть аппаратный ШИМ (PWM). Судя по справочнику http://roboforum.ru/download/file.php?id=17394 у Orduino-nano есть 4 пина под ШИМ (PWM) а точнее это пины 3,9,10,11.
Побаловался функцией
analogWrite(9, 128); // устанавливаем на 9 контакте значение эквивалентное 2,5В
быстро надоело, и я преступил к АЦП (Аналога Цифровой Преобразователь)
Снимал напряжения с подстроичника выдавал в COM значение 0-1024, включал/выключал светодиод примером Analog Input.
Всё простенькое я попробовал и начал МУДРИТь своё вот задумал что бы АЦП снимать и это значение сразу в ШИМ ну долго возиться не пришлось в общем получилось
Радости не было предела!
Захотелось большего!
Начал ковырять дисплей, припаивать провода согласно распиловки в статье по LCD и в моей голову пришла мысль что у nano пины другие, и что с примерами от UNO не подцеплю правильно LCD. После очередного сравнения nano с UNO и стати по LCD понял что нужны только цифровые порты nan-ы. Подцепил залил пример со статьи и не чего на LCD не увидел, и подумал что все-таки порты не те, или библиотека только для UNO. В голове прикинул из за чего и вспомнил про подстрочник покрутил рядом стоящие прямоугольники то исчезают, то появляются. Поставил среднюю точку, подцепил nano к USB и изображение появилось!!!
Опять по выводил буквы с com порта! Вот кстати код
/* Подключаем библиотеку для работы с LCD на базе HD44780 */ #include <LiquidCrystal.h> /* * Указываем, к каким пинам Arduino подключены выводы дисплея: * RS, E, DB4, DB5, DB6, DB7 */ LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { Serial.begin(9600); //устанавливаем скорость 9600 бит/сек lcd.begin(16, 2); // Инициализируем дисплей: 2 строки по 16 символов lcd.print("input com-port"); // Выводим надпись на экран } void loop() { if (Serial.available()>0) { // Если в буфере есть данные lcd.clear(); // Чистим экран while(Serial.available()>0) { // Повторяем цикл пока буфер не будет пуст lcd.write(Serial.read()); // Выводим по букве на дисплей } Serial.flush(); // Очищаем буфер – начинаем прием данных «с чистого листа» delay(3500); // Пауза для задержки символов на дисплее lcd.clear(); // Чистим экран lcd.begin(16, 2); // Инициализируем дисплей: 2 строки по 16 символов lcd.print("input com-port"); // Выводим надпись на экран } }
Посмотрел функции библиотеке LiquidCrystal.
Решил с блютусом поэкспериментировать отпишусь позже!