RSS блога
Подписка
Графический экран для Arduino NOKIA 5110 и как обычно немного DIY
- Цена: $2.79
- Перейти в магазин
По работе необходимо было изготовить небольшой стенд для проверки электроуправляемых пневматических редукторов. Выгребаем всё подходящее из стола и поехали. Мозгом данной конструкции станет приобретённая несколько лет назад с DX Arduino 1280, а лицом- купленный недавно дисплей от нокии 5110.
Дисплей я купил в магазине fasttech «на сдачу», в довесок к аккумуляторам, повербанку и куче ещё полезных мелочей. Это был мой первый заказ у них, и я остался очень доволен магазином и полученными покупками.
Итак, что же нужно от устройства, которое сегодня сделаю, и зачем на нём экран. Ардуино будет работать двухканальным вольметром. Изначально он должен был ещё выдавать управляющее напряжение, но никакого ЦАП под рукой не оказалось, а сделанный интегратор ШИМ сигнала из конденсатора и резистора оказался явно недостаточен для этих целей. Так что два аналоговых входа, на дисплей выводим напряжения по этим линиям, пересчитываем его в давление, и выводим разность давлений. Напряжение же задаём с помощью простого переменного резистора.
В данном случае экран очень сильно повысил удобство пользование стендом, отсутствие необходимости таскать за собой компьютер с консолью.
Распиновка с указанным на сайте совпадает:
Внешний вид- не очень. Отличия в маркировках и компонентах, расположенных выше экрана. На работоспособность не влияет. Гребёнку на контакты напаял уже я, мне так удобнее.
Для быстрого написания «интерфейса» воспользуемся библиотекой от Adafruit. В документации сказано как переназначить соответствие выводов экрана выводам ардуины. Подключить можно, похоже, совершенно произвольным образом, главное указать правильное соответствие. Это очень удобно. Но не удобно то что библиотека не работает с кириллической информацией. Для меня это, правда, мелочь. Комплектом к библиотеке идёт так же набор примеров, показывающих все возможности экрана и самой библиотеки- работа с линиями, с графическими объектами, анимация. Попробуйте, рекомендую -)
Вся программа для ардуино состоит из простых строчек, практически все из которых относятся к экрану:
И получаем вот такой удобный инструмент:
Итого. Экран отличный, и очень удобный в подключении. Благодаря библиотекам работать с ним очень просто. Вывод на экран в подобных самоделках гораздо удобнее постоянной записи в консоль. И стоит как бутылка пива -))
Дисплей я купил в магазине fasttech «на сдачу», в довесок к аккумуляторам, повербанку и куче ещё полезных мелочей. Это был мой первый заказ у них, и я остался очень доволен магазином и полученными покупками.
Итак, что же нужно от устройства, которое сегодня сделаю, и зачем на нём экран. Ардуино будет работать двухканальным вольметром. Изначально он должен был ещё выдавать управляющее напряжение, но никакого ЦАП под рукой не оказалось, а сделанный интегратор ШИМ сигнала из конденсатора и резистора оказался явно недостаточен для этих целей. Так что два аналоговых входа, на дисплей выводим напряжения по этим линиям, пересчитываем его в давление, и выводим разность давлений. Напряжение же задаём с помощью простого переменного резистора.
В данном случае экран очень сильно повысил удобство пользование стендом, отсутствие необходимости таскать за собой компьютер с консолью.
Распиновка с указанным на сайте совпадает:
Внешний вид- не очень. Отличия в маркировках и компонентах, расположенных выше экрана. На работоспособность не влияет. Гребёнку на контакты напаял уже я, мне так удобнее.
Для быстрого написания «интерфейса» воспользуемся библиотекой от Adafruit. В документации сказано как переназначить соответствие выводов экрана выводам ардуины. Подключить можно, похоже, совершенно произвольным образом, главное указать правильное соответствие. Это очень удобно. Но не удобно то что библиотека не работает с кириллической информацией. Для меня это, правда, мелочь. Комплектом к библиотеке идёт так же набор примеров, показывающих все возможности экрана и самой библиотеки- работа с линиями, с графическими объектами, анимация. Попробуйте, рекомендую -)
Вся программа для ардуино состоит из простых строчек, практически все из которых относятся к экрану:
/*********************************************************************
This is an example sketch for our Monochrome Nokia 5110 LCD Displays
Pick one up today in the adafruit shop!
------> http://www.adafruit.com/products/338
These displays use SPI to communicate, 4 or 5 pins are required to
interface
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, check license.txt for more information
All text above, and the splash screen must be included in any redistribution
*********************************************************************/
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <TimerOne.h>
// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(52, 49, 48, 51, 50);
int PressureOut, PressureSet;
int PressureSet_Pin = 0;
int PressureRead_Pin = 1;
void setup()
{
Serial.begin(9600);
display.begin();
// init done
// you can change the contrast around to adapt the display
// for the best viewing!
display.setContrast(50);
}
void loop()
{
PressureSet = analogRead(PressureSet_Pin);
display.setTextSize(1);
display.setTextColor(BLACK);
display.setCursor(0,0);
display.println("Set pressure");
display.setCursor(0,10);
display.println(PressureSet * (5.0 / 1023.0));
display.setCursor(25,10);
display.println("V");
display.setCursor(35,10);
display.println(map(PressureSet, 0, 1023, 0, 20));
display.setCursor(50,10);
display.println("Bar");
PressureOut = analogRead(PressureRead_Pin);
display.setCursor(0,30);
display.println("Out pressure");
display.setCursor(0,40);
display.println(PressureOut * (5.0 / 1023.0));
display.setCursor(25,40);
display.println("V");
display.setCursor(35,40);
display.println(map(PressureOut, 0, 1023, 0, 20));
display.setCursor(50,40);
display.println("Bar");
display.setCursor(0,20);
display.setTextSize(1);
display.println("Error B:");
display.setCursor(47,20);
display.println(((PressureOut - PressureSet) * (5.0 / 1023.0))*4);
display.display();
delay(10);
display.clearDisplay();
}
И получаем вот такой удобный инструмент:
Итого. Экран отличный, и очень удобный в подключении. Благодаря библиотекам работать с ним очень просто. Вывод на экран в подобных самоделках гораздо удобнее постоянной записи в консоль. И стоит как бутылка пива -))
+176 |
26986
167
|
Самые обсуждаемые обзоры
+74 |
3807
147
|
+56 |
4005
69
|
+35 |
3103
61
|
я заказывал цветной экран 320х240… так он кривой пришел. время диспута про**какал) хоть все остальные безделушки в порядке были
п.с. опередили
Тут питание и уровни 5-ти вольтовые?
(Сонный был, посмотрел на маркировку vcc на lcd и тупанув воткнул в 5v)
Экран 2х20 гораздо менее информативен, а 4х20 стоит столько, что заместо него можно уже поставить RGB 320x240
У меня проблема с экраном. Вчера поначалу экран показывал отлично, но потом через час игр с ним кроме подсветки ничего не было. Как позже выяснилось, текст/изображения показывались но оооочень блекло. Сегодня с утра его подключил и он опять хорошо показывает, но буквально через полминуты опять потускнело изображение и даже слегка мерцает. Видел тут в комментах совет поставить 1 кОм между VCC и GND, поставил, но эффекта никакого. Сейчас выставил контраст на 60 и вроде уже довольно долго показывает норм. Интересно, что во время перезагрузки скетча или отключения изображение на долю секунды отображается очень ярко и четко, но потом естественно пропадает. Боюсь попробовать подключить на 5В, хотя на самом экране написано 3V-5V, или эти 5В к подсветке относятся?
display.drawLine(0, 0, 83, 0, BLACK);
причем критична вторая координата: x2=83 и y2 кратное 8.
в частности на пост-тестере именно 3.3.
контрастность после обмена у обоих оказалась вполне похожая, боль-менее нормальная при 60 у Adafruit_GFX. если она отличается — вполне вероятны проблемы с контактом. у меня после первого переобжима потребовалось аж 90, и то было неравномерно. тоже я думаю и насчет помех — высокое сопротивление у питания контроллера, напряжение плавает.