Форум по Роботика

Технически форум => Електроника => Темата е започната от: zoro1 в Септември 13, 2010, 05:15:23 pm

Титла: Още един проблем с LCD
Публикувано от: zoro1 в Септември 13, 2010, 05:15:23 pm
Каквото и да пиша ,независимо че на симулатора върви все това показва?Дали е изгорял дисплея?




(http://img339.imageshack.us/img339/5347/13092010954.th.jpg) (http://img339.imageshack.us/i/13092010954.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)]
Титла: Още един проблем с LCD
Публикувано от: kotaraka в Септември 13, 2010, 09:18:41 pm
Едвали е изгорял.
Предполагам че не се инициалицира правилно.
На симулатора може да покаже много неща. Реалният живот е друго нещо.
Титла: Още един проблем с LCD
Публикувано от: mivr в Септември 13, 2010, 11:35:38 pm
Преди време и аз имах същият проблем.
Решението е много просто:
Първо най-вероятно отзад на платката ти един
от металните крака на дисплея не контактува (да онези които са самият корпус) тези крака са
 масите на дисплея(или поне така мисля :-D )
 в моя случай един от тези крака се беше разместили -->3/4 от дисплея не работеха.
Сега по-трудният въпрос , по снимката не мога да кажа много
(не че иначе мога да кажа много повече) но проблема ми прилича на ненастроен контраст
той се настройва от 3-ти крак чрез потенциометър.

Надявам се че бях полезен(ако ли не поне има на какво да се посмеем :-D )
Титла: Още един проблем с LCD
Публикувано от: zoro1 в Септември 14, 2010, 09:17:12 pm
Aми 3 то краче не се използва,поне програмно,като го закача дисплея към ардуиното и пусна мигащия дисплей тези символи дето се виждат мигат.но нищо не изписва нито светва до край.
Титла: Още един проблем с LCD
Публикувано от: Vexorian в Септември 14, 2010, 09:42:16 pm
3-то краче е точно за контраста, другата възможност е да не е инициализиран. http://www.ampire.com.tw/Spec-AC/AC-162A.pdf ли е дисплея? С този тип съм работил много, и никога не ми се е получавало това.
Титла: Още един проблем с LCD
Публикувано от: tommyboy в Септември 14, 2010, 10:06:29 pm
Контраст, контрасттт връткай тримера, ако няма слагай 10к тример . :-D  :-D  :-D
Титла: Още един проблем с LCD
Публикувано от: yasko в Септември 15, 2010, 11:01:33 am
Специално за zoro1 една примерна схема с код за управление на LCD 16x2. Базирана е на:
- LCD - AMC1602, blue - Komet
- MCU - ATMEGA88
- библиотека за управление я взех оттук  http://www.pocketmagic.net/?p=447, с някои модификации от моя страна.
Проекта за AVR studio може да бъде изтеглен оттук (http://www.robotics-bg.com/upload/files/yasko/lcd.zip). Няма проблеми да се прекомпилира и за друг AVR.
Ето и една снимка на схемата:
 (http://www.robotics-bg.com/upload/files/yasko/lcd16x2.jpg)
Титла: Още един проблем с LCD
Публикувано от: devilxp1 в Септември 16, 2010, 05:25:05 pm
Както преди мен беше написал- tommyboy...контраста!
Титла: Още един проблем с LCD
Публикувано от: zoro1 в Септември 16, 2010, 08:36:16 pm
Или аз не съм бил ясен и не сте ме разбрали или не знам.
В схемата на робоконтролера в самоя шиилд има потенциометър кък 3 то краче ,при завъртането му дисплея гасне съвсем /е малко прозира/
Схемата на контролера я има тук :
[СХЕМА] (http://robozone.su/uploads/posts/2008-02/1204281516_mainmk.gif)




шиилда е тук :


(http://img816.imageshack.us/img816/1630/experimentalheaderboard.th.gif) (http://img816.imageshack.us/i/experimentalheaderboard.gif/)

Uploaded with ImageShack.us (http://imageshack.us)

А и ако е контраста не мислите ли че ще се виждат всички символи ,а не само половината?И то не зависи от това което качвам в контрлера.Опитвал съм и с робоконтролера с а32,същата работа.
В събота ще го донеса на сбирката пък Яско ако донесе здрав дисплей ще пробвам.
Схемата на включване е стандартна

[СХЕМА] (http://robozone.su/uploads/posts/2008-07/thumbs/1215639398_schematic.gif)
Използвам го с BASCOM AVR кода е от семпълите както и готови от интернет.
Ето примерен код

$regfile = "m32def.dat"                                  

$crystal = 16000000 '

$lib "lcd4.lbx"    


  Do
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7

Config Lcd = 16 * 2
Cls                

Lcd "TEST   234   TEST"  

Lowerline          

Lcd "LCD test GOOD!!!"      

Wait 3 'Чакам 3 секунди дисплея работи
Cls      ' изчистване    
wait 3 'чакам 3 секунди дисплея не бачка
Loop

End
Титла: Още един проблем с LCD
Публикувано от: westsiderz в Септември 19, 2010, 07:55:16 am
Докато сме на вълна LCD дисплеи и аз да попитам нещо. При следната схема:

(http://img808.imageshack.us/img808/1808/lcd.th.png) (http://img808.imageshack.us/i/lcd.png/)

Uploaded with ImageShack.us (http://imageshack.us)

Когато симулирам с Proteus на дисплея не иска да изпише нищо  ;( Кода ми е следния, писан на MikroC:


sbit LCD_RS at RE2_bit;
sbit LCD_EN at RE0_bit;
//sbit LCD_RW at RE1_bit;
sbit LCD_D0 at RB0_bit;
sbit LCD_D1 at RB1_bit;
sbit LCD_D2 at RB2_bit;
sbit LCD_D3 at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISE2_bit;
sbit LCD_EN_Direction at TRISE0_bit;
//sbit LCD_RW_Direction at TRISE1_bit;
sbit LCD_D0_Direction at TRISB0_bit;
sbit LCD_D1_Direction at TRISB1_bit;
sbit LCD_D2_Direction at TRISB2_bit;
sbit LCD_D3_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;

char txt1[] = "mikroElektronika";
char txt2[] = "EasyPIC5";



void main(){
  TRISB = 0x00;
  TRISE = 0x00;
  Lcd_Init();                        // Initialize LCD

  //Lcd_Cmd(_LCD_CLEAR);                // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);           // Cursor off
  Lcd_Out(1,6,txt1);                 // Write text in first row
  Lcd_Out(2,6,txt2);                 // Write text in second row
  Delay_ms(2000);
  Lcd_Cmd(_LCD_CLEAR);                // Clear display




}


Къде може да ми е грешката, дали не съм свързал правилно нещата или има грешки в кода. Поне синтактични грешки няма. Искам да свържа управляващите пинове към ПОРТ С не към В. Нали не е проблем. R/W смятам да го свържа към контролера, и когато го свържа пак нищо не става, пак нищо не изписва. И другото което ме интересува. В схемата на yasko потенциометъра е 10к, аз мисля да слагам 47к - да не е много. А другия резистор, който е към подсветката - 15R няма ли да е малко. Или ако сложа към 100 ома да не бъде в повече?
Титла: Още един проблем с LCD
Публикувано от: zoro1 в Септември 19, 2010, 09:25:53 am
Ами ако можеше да зададвш че контролера се връзва към определен порт предполагам че е това:

sbit LCD_RS_Direction at TRISE2_bit;
sbit LCD_EN_Direction at TRISE0_bit;
//sbit LCD_RW_Direction at TRISE1_bit;
sbit LCD_D0_Direction at TRISB0_bit;
sbit LCD_D1_Direction at TRISB1_bit;
sbit LCD_D2_Direction at TRISB2_bit;
sbit LCD_D3_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
значи няма проблем.
А защо го използваш в 8 битов режим?
По темата  моя дисплей е изгорял,как -не знам
Титла: Още един проблем с LCD
Публикувано от: westsiderz в Септември 19, 2010, 04:49:51 pm
Цитат на: "zoro1"
Ами ако можеше да зададвш че контролера се връзва към определен порт предполагам че е това:

sbit LCD_RS_Direction at TRISE2_bit;
sbit LCD_EN_Direction at TRISE0_bit;
//sbit LCD_RW_Direction at TRISE1_bit;
sbit LCD_D0_Direction at TRISB0_bit;
sbit LCD_D1_Direction at TRISB1_bit;
sbit LCD_D2_Direction at TRISB2_bit;
sbit LCD_D3_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
значи няма проблем.
А защо го използваш в 8 битов режим?
По темата  моя дисплей е изгорял,как -не знам


Точно така, с това задавам към кой порт се връзват изводите на дисплея. Без това дисплея не може да се инициализира. Проблем ли е ако е в 8 битов режим. Понеже възнамерявам с един switch да го променям на 4 или 8 битов режим и да тествам и двата варианта. Тествах и при 4 битов режим пак е същото. Незнам дали е от Proteus или от нещо друго. В симулацията дисплея просто се включва и свети, курсора се появява, но няма текст. Когато сглобих схемата на бредборд, този път дисплея въобще не се включи. Дали това е знак, че е изгорял (макар че го купих преди два дни) и как може да се провери дали работи - ако към изводи 1 и 2 на дисплея приложим 4.5В напрежение трябва ли да светне поне или трябва и другите изводи да са включени.
BTW: Същата програмка я пробвах на PIC16F84A в 8 битов режим и работи безгрешка :shock:
Титла: Още един проблем с LCD
Публикувано от: zoro1 в Септември 19, 2010, 08:39:20 pm
Аз си играх с една Атмега8 и Атмега32.Използвах BASCOM AVR,там също удобно се инициализират портовевте,но ударих на камък.На симулацията си върви ,ама на "живо" не.А с ат90s2313 -никакъв проблем.
8 битовия режим се използва при комуникация която се изисква да е бърза.За 16*2 не е необходимо.
Ако използваш нещо от рода на графично LCD ли цветен дисплей от телефон  може.
Та айде сега някой да помага.
За да светне дисплея не само напрежение му трябва ,трябва да има и сигнал някъкъв,Rs ниско En вискоко ниво.
Титла: Още един проблем с LCD
Публикувано от: westsiderz в Септември 19, 2010, 10:24:39 pm
Разбрах и вече си реших проблема: не е трябвало RS и EN да се свързват към PORTE. Направих го да е в 4 битов режим, свързах всичко към PORTC и сега няма проблем.  :clap:
Титла: Още един проблем с LCD
Публикувано от: westsiderz в Септември 22, 2010, 06:14:55 pm
Преди малко пробвах с един PIC16F877 и един 16х2 LCD. Понеже не бях вкарал добре контролера в цокъла и явно не се получаваше добър контакт, ми се получи същото като на тебе  :shock:  Понатиснах и вкарах контролера до край в цокъла и почна да си работи нормално - както е и на симулацията   :clap:  Та ти препоръчвам да видиш дали някъде има елемент който не дава добър контакт, може да е МК-то или нещо друго. Просто при мен се оправи а беше същото/
Титла: Още един проблем с LCD
Публикувано от: zoro1 в Септември 22, 2010, 08:27:50 pm
Не ,първия дисплей ,заради когото пуснах темата си е заминал,купих си друг и го подкарах с Тини2313,но с атмега8 ,както и с Атмега32 и 16 не успях.Уж се инициализира правилно в симулатора на компилатора но не работи...
Титла: Още един проблем с LCD
Публикувано от: westsiderz в Септември 22, 2010, 09:44:58 pm
Много интересна работа  :? При мен след като го вкарах хубаво в цокъла се оправи и работеше без проблем
Титла: Още един проблем с LCD
Публикувано от: Borislav в Септември 24, 2010, 12:48:55 am
И при мен битката с LCD дисплея продължава... При мен изкарва единствено горния ред (във вид на квадратчета като снимката на zoro1 от началото на темата), но е доволно блед (вторият въобще не се появява), като контрастът е на максимална стойност. Имам вградени светодиоди, които не използвам. Стандартен, 8 битов дисплей - AC-162B от Комет, който ползвам като 4 битов (т.е. само 4 от 8-те му Data Bus-ове). Кодът ми е на Bascom, съвсем прост - представлява мърдащ се текст "HELLO!", който се движи наляво-надясно в пределите на Дисплея.
Свързвам го към Универсалния робоконтролер MRC40 посредством лентово кабелче с мъжка и женска рейки...
Някой да има идея?
Поздрави!

П.п. Илияне, ако ще идваш на клуба тази седмица, вземи си атрибутите за LCD дисплеите, за да го тестваме въобще дали работи. :)
Титла: Още един проблем с LCD
Публикувано от: zoro1 в Октомври 04, 2010, 12:28:36 pm
Подкарах дисплея да работи и с двата робоконтролера ,кото имам.
За големия робоконтролер MR40 се оказа че трянва да се подаде маса на 6-то краче на дисплея/разкача се от контролера/,на MC28 си е на маса.Другото беше ,че имаш лоша спойка на един от изводите,меря с мултицет на съпротивление -наред,пускам напрежение няма никой.
ще постна кода и битовете за улеснение на тези,кото искат да опитат.
кода е както следва:
$regfile = "m32def.dat"
$crystal = 7372800



Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Lcd = 16 * 2

Cls
Rem Български портал
Rem   по роботика
LCD " В»ґapcєё ѕopїa»"
lowerline
LCD "  ѕo poІoїёєa"
end

В рег файла указвам ,че съм с 7372800 кварц.
битовете са както следва:
(http://img202.imageshack.us/img202/3271/mrc40fuse.th.jpg) (http://img202.imageshack.us/i/mrc40fuse.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

И ако всичко е наред трябва да получите това:

(http://img832.imageshack.us/img832/6995/p1070256.th.jpg) (http://img832.imageshack.us/i/p1070256.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)



това е хекса:
:100000000C942A001895000018950000189500001F
:10001000189500001895000018950000189500002C
:10002000189500001895000018950000189500001C
:10003000189500001895000018950000189500000C
:1000400018950000189500001895000018950000FC
:10005000189500008FE58DBFC0E4E8E34E2E88E0E0
:100060008EBFD8E0F8E05F2EEEEFF7E0A0E6B0E05C
:10007000A89584B7082E877F84BF88E1992781BD22
:1000800091BD88278D933197E9F70E946700662418
:100090000E945F00EAEEF1E00E9456000E945D00BF
:1000A000ECEFF1E00E945600F894FFCF0E94F100BF
:1000B000802D11F054D0FACF089580EC56C081E025
:1000C00054D002D080E851C083E099277BC08AEFEA
:1000D00090E00E94E200BF9ABE9ABD9ABC9ABA9A7A
:1000E000B89AC09885E090E00E94E200C298C79854
:1000F000C698C59AC49AC29AEF93FF93E5EBF0E0D5
:100100000E94D600FF91EF91C29859D0C29AEF9306
:10011000FF93E5EBF0E00E94D600FF91EF91C298CB
:100120004ED0C29AEF93FF93E5EBF0E00E94D60029
:10013000FF91EF91C29843D0C498C29AEF93FF9376
:10014000E5EBF0E00E94D600FF91EF91C29837D026
:1001500088E20BD08EE009D086E007D00895C09ADF
:10016000829505D004D02BD00895C098F9CF8595FD
:1001700010F4C49A01C0C498859510F4C59A01C0C2
:10018000C598859510F4C69A01C0C698859510F457
:10019000C79A01C0C798C29AEF93FF93E5EBF0E0CE
:1001A0000E94D600FF91EF91C29808953197F1F720
:1001B0000895689462F80895E89462F8089581E0DB
:1001C00090E000C0EF93FF93EE27E82BE92B31F08E
:1001D000E3E3F7E03197F1F70197D1F7FF91EF9162
:1001E0000895C895319600200895A0C2BBB46170EF
:1001F00063BAB820BE6F70BF61BB00002020BE6F25
:0A02000020706FB26FBFB8BA610042
:00000001FF
Титла: Още един проблем с LCD
Публикувано от: westsiderz в Октомври 04, 2010, 05:44:19 pm
Както и предполагах, имал си лоша спойка. При мен също беше заради подобен проблем