Автор урока: Георгий Гуляев
Где-то далеко, в закромах своего сарая я нашел не что иное, как два 27MHz пульта от какой-то машинки, о чем свидетельствовало изображение машинки на дисплее. Один пульт не работал, другой был тоже не нужен, ведь машинки то нету. Распаяв плату я получил резисторы и конденсаторы, но самым интересным был дисплей. Решив, что его нужно подключить к Arduino полез в Яндекс искать его. Это был самый большой провал в моей жизни... Ни Яндекс, ни Google не знают такой фирмы производящей дисплеи, как Melodate не знали. Судя по маркировке это Melodate MD-2072.
У него подключение шлейфом, а еще сзади есть два контакта под динамик, который я благополучно оторвал, из-за того, что тот пищал при любых телодвижениях на экране.
Распиновка на плате была, но...соответствовало действительности разве, что GND и VDD. Остальное, как оказалось - направления движения. Долго мучашись с постоянным прописыванием функции digitalWrite() и вспомианием, какой пин относится к какому действию я решил написать библиотеку. Подключать дисплей надо именно так, как нарисовано в титульной картинке. Но...тут не так все просто. Это во Fritzing взял, перевернул, и все прекрасно, а на самом деле пришлось немного подумать.
Точнее думать не особо-то и надо было - снял облочку, да поменял местами проводки GND и VDD.
А теперь подробнее про библиотеку, кстати вот она - Скачать
Итак, мы подключили дисплей, как надо, а теперь собственно библиотека. Всего в ней 9 комманд.
Пример:
#include <md2072.h> MD2072 md2072;//Вместо md2072 можно указать например d, но тогда во всем коде придется поменять md2072 //на ваше значение. Возможно, Вам будет проще void setup() { } void loop() { md2072.clear(); //Очищаем экран md2072.forwardon(); //Задаем машинке движение вперед md2072.righton(); //Направляем ее направо delay(1000); //Делаем это 1 секунду md2072.clear(); //Очищаем экран md2072.backwardon(); //Задаем движение назад md2072.lefton(); //Направляем налево delay(1000); //Делаем это 1 секунду }
Также есть команды для выключения определенных действий. Например
Отключаем частично экран:
#include <md2072.h> MD2072 md2072; //Вместо md2072 можно указать например d, но тогда во всем коде придется поменять md2072 //на ваше значение. Возможно, Вам будет проще void setup() { } void loop() { md2072.clear(); //Очищаем экран md2072.forwardon(); //Задаем машинке движение вперед md2072.righton(); //Направляем ее направо delay(1000); //Делаем это 1 секунду md2072.forwardoff(); //Отключаем движение вперед md2072.backwardon(); //Задаем движение назад delay(1000); //Делаем это 1 секунду md2072.rightoff(); //Перестаем ехать направо md2072.lefton(); //Едем теперь налево delay(1000); //Делаем это 1 секунду }
Еще есть функции:
md2072.backwardoff(); //Отключаем движение назад md2072.leftoff(); //Снимаем движение в левом направлении
Загружаем скетч либо из примеров в библиотеке, либо скопировав отсюда (они одинаковые) в нашу *duino и видим, что все работает. Хочу также предупредить, что если у Вас, что-то идет не по коду, то скорее всего :
А. Контакты перемкнулись
Б. Неправильное подключение
В. На экран смотреть нужно сверху вниз, а не под углом
Г. Доткнуть пинцетом контакты
Да, согласен, дисплей более, чем неинформативен, но например информацию о состоянии реле, или других не сильно информационно загруженных вещей показывать можно, ведь это не сложно.
Обсуждение