Перейти к содержимому

Как приклеить шлейф к дисплею nokia 5110

  • автор:

Подключение дисплея от nokia 5110/3310 к AVR

Итак, наконец-то повезло приобрести телефон nokia 5110. В телефоне много разных вкусностей, но нас интересует дисплей.

:warning: Если вы используете AVR-GCC / WinAvr, то вам нужна эта библиотека. Настоятельно рекомендую изучить эту статью.

Телефон, собственно|300

Разбираем телефон и добираемся до дисплея.

|300

Дисплей с печаткой соединяется резиновым шлейфом. Также под дисплеем располагаются светодиоды. Лучше всего отпилить часть печатки с дисплеем и припаять шлейф с коннектором, как я и поступил.

|300 |300

Распиновка дисплея|300

На плате с дисплеем я напаял несколько перемычек, дабы уменьшить количество проводов.

Распиновка на печатке, вид сверху|500

Далее дисплей подключается к микроконтроллеру по такой схеме:

Подключение к МК|300

Я использовал ATmega8, но подойдут и многие другие микроконтроллеры семейства AVR. Пины можно изменить в программе. Схему я питал напряжением 3.3в, но для питания от пяти нужно сделать коммутацию на резисторах. Драйвер собран из нескольких источников. Код для CodeVisionAvr. Русские буквы в набор входят 🙂

Функции приведены ниже

void lcd_init(void); //инициализация дисплея  void lcd_contrast(unsigned char contrast); //установить контраст  void lcd_clear(void); //очистить диплей  void lcd_clear_area(unsigned int line, unsigned char startX, unsigned char endX); //очистить поле  void lcd_clear_line(unsigned int line); //очистить линию  void lcd_gotoxy(unsigned int x, unsigned int y); //переместить курсов в заданную позицию  void lcd_putch(char chr); //вывод символа  void lcd_str(char *str); //вывод строки  void lcd_image( flash unsigned char img[]); //вывод изображения из программы Image generate  void lcd_extrachar(int num); //вывод дополнительных символов (пока только значок заряда, 7x10) 

Пины меняются в заголовочном файле lcd.h

#define LCD_CLK_PIN PORTB.0 #define LCD_DATA_PIN PORTB.1 #define LCD_DC_PIN PORTB.2 #define LCD_RST_PIN PORTB.3 

Стоит напомнить, что префикс flash перед переменной означает, что она сохраняется не в оперативной памяти, а во flash памяти МК. Использовал по причине нехватки памяти при хранении изображений.

Ну и демонстрация работы

|300 |300

|300 |300

Ссылки:

Как приклеить шлейф к дисплею nokia 5110

Если при нарезании резьбы смазать инструмент касторовым маслом, то процесс пойдёт намного лучше.

  • Микроконтроллеры
  • Программирование на C/C++
  • Новости сайта
  • Разное
  • Черновик
  • Из подручных материалов

Сайт больше не работает
на Raspberry Pi

Подключение дисплея от nokia 5110/3310 к AVR

Итак, наконец-то повезло приобрести телефон nokia 5110. В телефоне много разных вкусностей, но нас интересует дисплей.

Если вы используете AVR-GCC / WinAvr, то вам нужна эта библиотека. Настоятельно рекомендую изучить эту статью.

Рисунок 1 – Телефон, собственно

Рисунок 1 – Телефон, собственно

Разбираем телефон и добираемся до дисплея.

Дисплей с печаткой соединяется резиновым шлейфом. Также под дисплеем располагаются светодиоды. Лучше всего отпилить часть печатки с дисплеем и припаять шлейф с коннектором, как я и поступил.

Рисунок 5 – Распиновка дисплея

На плате с дисплеем я напаял несколько перемычек, дабы уменьшить количество проводов. Рисунок 5 – Распиновка дисплея

Рисунок 6 – Распиновка на печатке, вид сверху

Рисунок 6 – Распиновка на печатке, вид сверху

Далее дисплей подключается к микроконтроллеру по такой схеме:

Рисунок 7 – Подключение к МК

Рисунок 7 – Подключение к МК

Я использовал ATmega8, но подойдут и многие другие микроконтроллеры семейства AVR. Пины можно изменить в программе. Схему я питал напряжением 3.3в, но для питания от пяти нужно сделать коммутацию на резисторах. Драйвер собран из нескольких источников. Код для CodeVisionAvr. Русские буквы в набор входят 🙂

Функции приведены ниже

void lcd_init(void); //инициализация дисплея void lcd_contrast(unsigned char contrast); //установить контраст void lcd_clear(void); //очистить диплей void lcd_clear_area(unsigned int line, unsigned char startX, unsigned char endX); //очистить поле void lcd_clear_line(unsigned int line); //очистить линию void lcd_gotoxy(unsigned int x, unsigned int y); //переместить курсов в заданную позицию void lcd_putch(char chr); //вывод символа void lcd_str(char *str); //вывод строки void lcd_image( flash unsigned char img[]); //вывод изображения из программы Image generate void lcd_extrachar(int num); //вывод дополнительных символов (пока только значок заряда, 7x10)

Пины меняются в заголовочном файле lcd.h

#define LCD_CLK_PIN PORTB.0 #define LCD_DATA_PIN PORTB.1 #define LCD_DC_PIN PORTB.2 #define LCD_RST_PIN PORTB.3

Стоит напомнить, что префикс flash перед переменной означает, что она сохраняется не в оперативной памяти, а во flash памяти МК. Использовал по причине нехватки памяти при хранении изображений.

Ну и демонстрация работы

Ссылки:

LCD дисплей Nokia 5110

LCD дисплей Nokia 5110

Графический дисплей Нокиа с разрешением экрана 84 х 48 точек.

Нашли ошибку — выделите и нажмите CTRL Q
Лизинг Быстрое решение по заявке
ПНР Пусконаладочные работы
Ремонт и сервис Собственный сервисный центр

Этот дисплей использовался в старой модели телефона Nokia 5110/3310. Это — 84×48 точек монохромный жидкокристаллический дисплей с диагональю приблизительно 1.5 ″ , но с хорошей читаемостью за счет высокой контрастности и светодиодной подсветки. Дисплей содержит 84×48 пикселей и позволяет использовать для вывода графических изображений, текста. Для вывода изображения достаточно от 3-х до 5-ти выводов процессора.
В дисплее применен контроллер PCD8544. Питание контроллера 3,3в. Логические уровни так же соответствуют уровню 3В.
Подключать дисплей к контроллеру Arduino следует через преобразователь уровня. Можно использовать микросхему CD4050. В интернете так же часто встречается подключение дисплея через резистивные делители.

● Проект 16: Графический индикатор. Подключение дисплея Nokia 5110

В этом эксперименте мы рассмотрим графический дисплей Nokia 5110, который можно использовать в проектах Arduino для вывода графической информации.

Необходимые компоненты:

Жидкокристаллический дисплей Nokia 5110 – монохромный дисплей с разрешением 84×48 на контроллере PCD8544, предназначен для вывода графической и текстовой информации. Питание дисплея должно лежать в пределах 2.7–3.3 В (максимум 3.3 В, при подаче 5 В на вывод VCC дисплей может выйти из строя). Но выводы контроллера толерантны к +5 В, поэтому их можно напрямую подключать к входам Arduino. Немаловажный момент – низкое потребление, что позволяет питать дисплей от платы Arduino без внешнего источника питания.
Схема подключения Nokia 5110 к Arduino показана на рис. 16.1.

Arduino проект www.arduino-kit.ru

Рис. 16.1. Схема подключения Nokia 5110 к Arduino

Для работы с дисплеем Nokia 5110 будем использовать библиотеку Adafruit_GFX, которая имеет богатые возможности для вывода графики и текста. В нашем эксперименте мы будем получать данные освещенности с фоторезистора, подключенного к аналоговому входу Arduino A0, и выводить данные освещенности в числовом и графическом представлениях. Схема подключения показана на рис. 16.2.

Подключение дисплея Nokia 5110

Рис. 16.2. Схема подключения Nokia 5110 и фоторезистора к Arduino

Код скетча нашего эксперимента показан в листинге 16.1. Мы считываем данные с фоторезистора и отображаем числовое значение, а также в графическом виде (прогресс-бар) значение освещенности в процентах от максимального значения. Значения минимальной и максимальной освещенности берем из эксперимента 13.

// Подключение библиотеки #include #include // PIN 7 - RST Pin 1 on LCD // PIN 6 - CE Pin 2 on LCD // PIN 5 - DC Pin 3 on LCD // PIN 4 - DIN Pin 4 on LCD // PIN 3 - CLK Pin 5 on LCD Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7); const int LIGHT=A0; // Контакт A0 для входа фоторезистора const int MIN_LIGHT=200; // Нижний порог освещенности const int MAX_LIGHT=900; // Верхний порог освещенности // Переменная для хранения данных фоторезистора int val1,val2 = 0; void setup() < display.begin(); // установить контраст фона экрана // очень важный параметр! display.setContrast(60); display.clearDisplay(); // очистить экран delay(2000); > void loop() < val1 = analogRead(LIGHT); // Чтение показаний фоторезистора drawText(val1,1); // вывести текст // масштабирование значения потенциометра к 0–75 val2= map(val1, MIN_LIGHT, MAX_LIGHT, 0, 75); // вывод черного прямоугольника в % display.fillRect(5, 25, val2, 10, 1); // вывод белой части прямоугольника display.fillRect(5+val2,25, 75-val2, 10, 0); display.display(); delay(1000); // пауза перед новым измерением drawText(val1,2); // стереть текст > // процедура вывода текста void drawText(unsigned long num,int color) < display.setTextSize(2); // размер шрифта display.setCursor(20,5); // позиция курсора if(color==1) display.setTextColor(BLACK); // вывести значение else display.setTextColor(WHITE); // стереть (белым по белому) display.print(num); >

Порядок подключения:

1. Подключаем датчик дисплея Nokia 5110 и фоторезистор по схеме на рис. 16.2.
2. Загружаем в плату Arduino скетч из листинга 16.1.
3. Перекрывая рукой поток света, смотрим на экране дисплея изменение показаний освещенности.

Листинги программ скачать

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *