Jump to content
Sign in to follow this  
ricofi

Вывод На Текстовый Дисплей 16X2

Recommended Posts

Собрал схему подключения дисплея к Raspberry Pi. Использовал этот дисплей в другой схеме, потом отпаял и снова собрал на беспаечной макетке и он перестал выводить символы.

При подключении заполняет одну строку квадратами. После запуска программы квадраты исчезают, но символы не появляются. При увеличении контрастности появляются только символы в обеих строках.

Схема ниже. В чем может быть проблема?

Вариант, что неправильно собрал схему отпадает, так как схему на макетке с прошлого раза я даже не разбирал, просто отключил от нее дисплей.

На данный момент нет возможности для проверки подключить другой дисплей.

post-200449-0-56906300-1460747440_thumb.jpg

Share this post


Link to post
Share on other sites

Скорее всего сгорел дисплей

Скорее всего сгорел дисплей

Share this post


Link to post
Share on other sites

Высококачественные конденсаторы Panasonic для надежности вашей электроники!

Электролитические алюминиевые конденсаторы Panasonic отличаются повышенной надежностью, длительным сроком службы, низким импедансом и выдерживают большой ток пульсаций, в то время как семейства полимерных конденсаторов Panasonic SP-CAP, POSCAP, OS-CON и HYBRID характеризуют сверхнизкий ESR и увеличенная емкость, работа при высоких напряжениях и в расширенном температурном диапазоне. Приобретая продукцию Panasonic, вы гарантированно получаете самое передовое решение для ваших задач. Для облегчения вашего выбора, мы подготовили подборку полезных материалов.

Читать статьи

А может в программе что-то?

К программе я с того момента даже не прикасался.

Может быть, контакты дисплея от припоя плохо почистил?

Edited by ricofi

Share this post


Link to post
Share on other sites

Все может быть. Контакты и целостность соединений, согласно схемы, нужно было проверить в первую очередь.

Share this post


Link to post
Share on other sites
                     

Вебинар "Как создать BLE-устройство на базе новейшего беспроводного микроконтроллера STM32WB55"

27 ноября 2019 года компания КОМПЭЛ приглашает разработчиков, технических руководителей и энтузиастов беспроводной связи на вебинар, посвященный новинке 2019 года – мультипротокольному беспроводному микроконтроллеру STM32WB55, который позволяет создавать устройства на базе стандартов BLE 5.0; BLE Mesh; 802.15.4/ZigBee и Thread. На вебинаре мы покажем, как с помощью привычных инструментов STM32Cube и STM32CubeMX можно создать свое первое, надежно работающее BLE-приложение.

Зарегистрироваться на вебинар

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Similar Content

    • By Tulen
      Здарова, железячники. 
      Собираю клавиатуру из 12-ти кнопок, которую подключаю к пичку (PIC18F25K80). Но про клавиатуру не важно, там все разобрано и код сделал уже. Проблема в том, что сейчас нет времени самому писать библиотеку для работы с LCD дисплеем (через недельку-две я сяду и разберусь), поэтому я ищу готовые библиотеки. Дисплей - LM016L, контроллер - HD44780. 
      Нашел одну библиотеку, добавил в код. Компилятор ругается на выводы строчек и не хочет выводить переменные. 
      Прилагаю код:
      IDE - MPLAB X v4.05
      Компилятор - XC8 бесплатный.
      Варнинги от компилятора + строчки:
          PORTC = (data & 0x0F)*16; // newmain.c:46: warning: (373) implicit signed to unsigned conversion     PORTC = (data >> 4)*16; // newmain.c:54: warning: (373) implicit signed to unsigned conversion     PORTC = (data & 0xF)*16; // newmain.c:57: warning: (373) implicit signed to unsigned conversion     WriteByte(addLUT[row] + col); // newmain.c:65: warning: (373) implicit signed to unsigned conversion     SetLCDPosition(LCD_Line+1,0);  // newmain.c:87: warning: (373) implicit signed to unsigned conversion     WriteByte(i); // newmain.c:116: warning: (373) implicit signed to unsigned conversion     ShowStr(b); // newmain.c:160: warning: (357) illegal conversion of integer to pointer     ShowStr("BAD"); // newmain.c:172: warning: (359) illegal conversion between pointer types  
    • By LegionKC
      Всем Привет.
      Прошу не кидаться тапками за название темы, понимаю, что уже много опубликовано материалов по этому вопросу, однако все кроется в нюансах.
      Итак, к проблеме.
      Выполняю курсовую работу. Опыта в программировании минимум.
      Имеется схема с МК ATmega8 и дисплеем LM044 на контроллере HD44780. При попытке вывести инфу на дисплей столкнулся с этими двумя рядами прямоугольников (к слову, дисплей 20х4).
       
      Поначалу думал, что оторвались провода, которые соединяют дисплей с МК. Нет, все прозваниваются. Кстати, схема вся была спаяна преподавателем и раньше дисплей уже выводил инфу, но когда начал я ее прошил своей прогой, появилось, то что на фотке. 
      Потом пошли мысли, что неправильно настроил выводы в CodeVision AVR, в котором работаю.
      Исходя из даташита МК и того, куда припаяны провода в схеме, настроил порты таким образом:
      Думал, что теперь будет все норм, прошил снова - ничего. Начал уже бесится, изучил десятки страниц (уже не первый день работаю над схемой, думал все-таки смогу сделать сам, ан нет)
      Решил начать с простого. Нашел в инете самый простой код по выводу инфы
      Сделал стандартный проект в CodeVision AVR, вставил туда этот код, настроил настроил выводы на свои. 
      Прошил в Протеусе МК и вуаля - в Протеусе инфа выводится!
      На радостях решил, что теперь-то все получится - опять нет!
      Прошивал МК через AVRDUDE PROG 3.0 через USBasp
      Ребят, у меня к вам такие вопросы:
      1. Что может быть не так с дисплеем?
      2. Нужно ли как-то настраивать порты МК? Потому что я нигде не видел, чтобы хоть где-то пытались настроить порты МК при выводе инфы на экран. Даже в том коде, что я выложил. 
      Прошу вас, высказывайте любые идеи и мысли, ибо я реально хочу понять программирование и выяснить в чем же проблема.
      Спасибо!
    • By Sherwood107
      Народ, прошу помощи в решении проблемы. Решил собрать тестер полупроводниковых элементов по данной схеме. В конечном итоге на lcd дисплее светятся все сегменты, и никакого намеки на нормальную работу прибора. Собирался по схеме 1, и по схеме 2 (которая представлена здесь), реакция аналогичная. МК зашит правильно, опыт в этом есть. Все дорожки прозвонил, никаких коротышей нету, в чём проблема понять не могу. Первый опыт в подключении lcd дисплея и вывода на него информации..





    • By motoalex
      Здравствуйте уважаемые любители МК)
      Пытаюсь организовать такую задачу на STM32f407VG:
      1. Принимаем данные по USART, помещаем их во временный буфер( Recieve_buff).
      2. Если попадается символ '+' читаем (Recieve_buff) и записываем данные после '+' в массив данных (massive).
      3. Выводим данные на жки wh1602.
      с 1 и 3 пунктом проблем как бы нет, но вот со вторым вовсе не клеится. К примеру: отправляю +suprima, после 1, а то и 3 отправки приходит только один символ 's', т.е. и не каждый раз выводятся данные. Прошу помощи у Гуру сообщества. Всем Благ!

      #include "main.h" uint16_t delay_count=0; uint32_t i; uint32_t i3; int i2=123; char str1[50]; uint8_t massive[256]; // massive buffer uint8_t Recieve_buff[256]; // recieved buffer uint8_t Recieve_W=0, Recieve_R=0, Recieve_C=0; char Send_buffer[100]; uint8_t Send_count=0; void SysTick_Handler(void)// counter { if (delay_count > 0) { delay_count --; } } void(delay_ms(uint16_t delay_temp)) // schitayem nashe vremya, kotoroe zadano v osnovnom tele { delay_count = delay_temp; while(delay_count) {} } //---------------------------------------------------// //recieved data interrupt //---------------------------------------------------// void USART2_IRQHandler(void) { if(USART_GetITStatus(USART2, USART_IT_RXNE) == SET) // if flag interrupt set up we will do next... { USART_ClearITPendingBit(USART2, USART_IT_RXNE); // reset interrupt Recieve_buff[Recieve_W] =USART_ReceiveData(USART2); Recieve_W++; Recieve_C++; } } //---------------------------------------------------// int main(void) { USART2_init(); SystemCoreClockUpdate(); SysTick_Config(SystemCoreClock/1000);// 1ms delay_ms(50); LCD_ini(); while(1) { if(Recieve_C>0) { if(Recieve_buff[Recieve_R++]=='+') { massive[i3++]=Recieve_buff[Recieve_R++]; sprintf(str1, "%s", massive); //sprintf(str7, "%s %d %s", "one", i2, str); LCD_Send_String8(0,str1); } Recieve_C--; Recieve_R++; } } }
    • By Dimonela
      Пытаюсь писать ПО под инкубатор, раньше не сильно сталкивался с таким ЯП как C(Wiring). Поэтому возникли проблемы с тем, что когда МК стартует, выводится чистый экран и только когда нажмешь button2 выводятся показания. Пробовал достать switch с условия, в тело loop() то были проблемы с тем что изображение мерцает, видимо перерисовывается. Вообщем помогите решить эту проблему и нужно как-то сделать так, чтобы показания меню, такие как текущая температура и влажность, были динамическими

      #include <LiquidCrystal.h> #include "DHT.h" #define button1 8 #define button2 9 #define button3 10 #define DHTPIN 6 #define DHTTYPE DHT11 uint8_t a = 0; uint8_t val = 0; // инициализация пинов LiquidCrystal lcd(12, 11, 5, 4, 3, 2); DHT dht(DHTPIN, DHTTYPE); void setup() { lcd.begin(16, 2); dht.begin(); } void loop() { val = digitalRead(button2); if (val == HIGH) { if (a > 1) { a = 0; delay(100); } else { a++; delay(100); } // Меню switch (a) { case 0: info(); //Общий показ break; case 1: temp(); //Температура break; case 2: vl(); //Влажность break; } } } void info() { lcd.clear(); lcd.setCursor(0, 0); lcd.print(dht.readTemperature()); lcd.setCursor(0, 1); lcd.print(dht.readHumidity()); } void temp() { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Temperature"); lcd.setCursor(0, 1); lcd.print(dht.readTemperature()); } void vl() { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Hum"); lcd.setCursor(0, 1); lcd.print(dht.readHumidity()); }
×
×
  • Create New...