well i hope i will triger a nicer behavior in trafic..... or i could scroll ...eat my dust...
that would be a good treiger
!!!
well i hope i will triger a nicer behavior in trafic..... or i could scroll ...eat my dust...
that would be a good treiger
!!!
hello this may help, I have eeprom values for displaying characters this should fit on pic's with larger eeprom storage such as a 16f877
the code snippet reads the eeprom characters into the leddata varible and should display them scrolling.....well hopefully i havnt tested myself!
you will have to modify the loop section to suit your 4017 setupCode:eeprom 0,[%00111110,%01010001,%01001001,%01000101,%00111110] '0 eeprom 5,[%00000000,%01000010,%01111111,%01000000,%00000000] '1 eeprom 10,[%01000010,%01100001,%01010001,%01001001,%01000110] '2 eeprom 15,[%00100001,%01000001,%01000101,%01001011,%00110001] '3 eeprom 20,[%00011000,%00010100,%00010010,%01111111,%00010000] '4 eeprom 25,[%00100111,%01000101,%01000101,%01000101,%00111001] '5 eeprom 30,[%00111100,%01001010,%01001001,%01001001,%00110000] '6 eeprom 35,[%00000001,%01110001,%00001001,%00000101,%00000011] '7 eeprom 40,[%00110110,%01001001,%01001001,%01001001,%00110110] '8 eeprom 45,[%00000110,%01001001,%01001001,%00101001,%00011110] '9 eeprom 50,[%00000100,%00000110,%01111111,%00000110,%00000100] 'Up Arrow eeprom 55,[%00010000,%00110000,%01111111,%00110000,%00010000] 'Dn Arrow eeprom 60,[%01111110,%00010001,%00010001,%00010001,%01111110] 'A eeprom 65,[%01111111,%01001001,%01001001,%01001001,%00110110] 'B eeprom 70,[%00111110,%01000001,%01000001,%01000001,%00100010] 'C eeprom 75,[%01111111,%01000001,%01000001,%00100010,%00011100] 'D eeprom 80,[%01111111,%01001001,%01001001,%01001001,%01000001] 'E eeprom 85,[%01111111,%00001001,%00001001,%00001001,%00000001] 'F eeprom 90,[%00111110,%01000001,%01001001,%01001001,%01111010] 'G eeprom 95,[%01111111,%00001000,%00001000,%00001000,%01111111] 'H eeprom 100,[%00000000,%01000001,%01111111,%01000001,%00000000] 'I eeprom 105,[%00100000,%01000000,%01000001,%00111111,%00000001] 'J eeprom 110,[%01111111,%00001000,%00010100,%00100010,%01000001] 'K eeprom 115,[%01111111,%01000000,%01000000,%01000000,%01000000] 'L eeprom 120,[%01111111,%00000010,%00000110,%00000010,%01111111] 'M eeprom 125,[%01111111,%00000100,%00001000,%00010000,%01111111] 'N eeprom 130,[%00111110,%01000001,%01000001,%01000001,%00111110] 'O eeprom 135,[%01111111,%00001001,%00001001,%00001001,%00000110] 'P eeprom 140,[%00111110,%01000001,%01010001,%00100001,%01011110] 'Q eeprom 145,[%01111111,%00001001,%00011001,%00101001,%01000110] 'R eeprom 150,[%01000110,%01001001,%01001001,%01001001,%00110001] 'S eeprom 155,[%00000001,%00000001,%01111111,%00000001,%00000001] 'T eeprom 160,[%00111111,%01000000,%01000000,%01000000,%00111111] 'U eeprom 165,[%00011111,%00100000,%01000000,%00100000,%00011111] 'V eeprom 170,[%00111111,%01000000,%00110000,%01000000,%00111111] 'W eeprom 175,[%01100011,%00010100,%00001000,%00010100,%01100011] 'X eeprom 180,[%00000111,%00001000,%01110000,%00001000,%00000111] 'Y eeprom 185,[%01100001,%01010001,%01001001,%01000101,%01000011] 'Z eeprom 190,[%00100000,%00010000,%00001000,%00000100,%00000010] '/ leddata var byte[80] START: CLEAR FOR counter = 0 TO 4 READ counter+65, leddata [counter+5] 'B READ counter+60, leddata [counter+11] 'A READ counter+65, leddata [counter+17] 'B READ counter+189, leddata [counter+23] 'Y READ counter+130, leddata [counter+32] 'O READ counter+125, leddata [counter+38] 'N READ counter+65, leddata [counter+47] 'B READ counter+130, leddata [counter+53] 'O READ counter+60, leddata [counter+59] 'A READ counter+145, leddata [counter+65] 'R READ counter+75, leddata [counter+71] 'D NEXT LOOP: FOR scroll = 0 TO 77 FOR scan = 0 TO 15 PORTC = 1 FOR counter = 0 TO 7 PORTB = leddata [counter] PAUSEUS 1500 PORTB = 0 'This helps prevent ghosting PORTC = PORTC * 2 NEXT NEXT FOR counter = 0 TO 78 leddata [counter] = leddata [counter+1] ' *** SHIFTS DATA IN leddata ARRAY DOWN.*** NEXT NEXT GOTO START End
Some of my projects: http://www.youtube.com/user/wellyb00t
of course this is helpful here is the code that i changed, i know there is a beter way to feed variable but this is for testing and is the siplest way...thx for helping and insiration
and link for video.
Code:'************************************************* *************** ' SIMPLE 14X8 LED MATRIX SCROLLING EXAMPLE ' LED Matrix columns are conected to PORTC pin rc0 via ULN2003 and CD4017. ' RC1 reset for 4017 ' LED Matrix rows conected to PORTB via 100 ohm resistors (Resistor value dependant on LEDs used) ' RB0 - top row ' MCLR (pin1) connected via 4K7 to +5v supply. ' ' today '************************************************* ************************************** Device 16F877A Xtal 8 TRISB = %00000000 TRISC = %00000000 PORTB=0 PORTC=0 kolona var Byte brojac var Byte scan var Byte scroll var Byte leddata VAR Byte[47] START: Clear leddata[0] = $FF leddata[1] = $91 leddata[2] =$91 leddata[3] =$90 leddata[4] = $01 leddata[5] = $01 leddata[6] = $ff leddata[7] =$01 leddata[8] =$01 leddata[9] = $46 leddata[10] = $89 leddata[11] = $99 leddata[12] =$b1 leddata[13] =$62 leddata[14] = $00 'start smjalija leddata[15] = $00 leddata[16] = $00 leddata[17] = $7e leddata[18] =$81 leddata[19] =$95 leddata[20] = $a1 leddata[21] = $a1 leddata[22] = $95 leddata[23] =$81 leddata[24] =$7e leddata[25] =$00 leddata[26] =$00 leddata[27] = $00 leddata[28] = $00 LOOP: For scroll = 0 To 1 ' NUMBER OF LETERS or changes display TO SHOW For scan = 0 To 185 PORTC.1 = 1 'reseting 4017 PORTC.1 =0 For kolona = 0 To 13 PORTC.0 = 1 'clock 4017 PORTC.0 =0 PORTB = leddata[kolona] DelayUS 250 PORTB=0 Next Next For brojac = 0 To 14 leddata[brojac]=leddata[brojac+14] Next Next GoSub scrolling GoTo START End scrolling: leddata[0] = $00 leddata[1] = $00 leddata[2] = $00 leddata[3] = $00 leddata[4] = $00 leddata[5] = $00 leddata[6] = $00 leddata[7] = $00 leddata[8] = $00 leddata[9] = $00 leddata[10] = $00 leddata[11] = $00 leddata[12] = $00 leddata[13] = $00 leddata[14] = $00 leddata[15] = $00 leddata[16] = $00 leddata[17] = $00 leddata[18] = $FF 'start of 'E' leddata[19] = $91 leddata[20] =$91 leddata[21] =$81 leddata[22] = $81 leddata[23] = $00 leddata[24] = $01 'start of 'T' leddata[25] = $01 leddata[26] =$ff leddata[27] =$01 leddata[28] = $01 leddata[29] = $46 'start of 'S' leddata[30] = $89 leddata[31] =$99 leddata[32] =$b1 leddata[33] = $62 leddata[34] = $00 'start of '!' leddata[35] = $00 leddata[36] =$df leddata[37] =$00 leddata[38] =$00 For scroll = 0 To 38 ' NUMBER OF LETERS TO SHOW For scan = 0 To 25 PORTC.1 = 1 'reseting 4017 PORTC.1 =0 For kolona = 0 To 14 PORTC.0 = 1 'clock 4017 PORTC.0 =0 PORTB = leddata[kolona] DelayUS 300 PORTB=0 Next Next For brojac = 0 To 37 leddata[brojac]=leddata[brojac+1] Next Next Return
Last edited by ScaleRobotics; - 7th February 2011 at 23:47. Reason: changed to video tags for video
wel as for the reading of IR code i used a build in command from protonIde picbasic compiler, the code is only for testing puposes and not looking goodas i yet didn't finished the implementing my idea, and here it is
as for the schematic i just used cd4017 datasheet section for cascading columns, the clock is portc.0 pin and the reset is portc.1 pin, as you can see i am working on a protoboard so i dont have a full schematic. This fun project is in development and probably wont be finished for long so i cant ofer a PCB designCode:'**************************************************************** ' SIMPLE 15X8 LED MATRIX SCROLLING EXAMPLE ' 16F877A External 8MHz Xtal Osc ' LED Matrix columns are conected to PORTC pin rc0 via ULN2004AN and CD4017. ' RC1 reset for 4017 ' LED Matrix rows conected to PORTB via 100 ohm resistors ' RB0 - top row ' Author: Muamer Halilovic ' www.mtskola.com ' today '*************************************************************************************** Device 16F877A Xtal 8 TRISB = %00000000 TRISC = %10000000 TRISD = %00000000 PORTB=0 PORTC=0 PORTD=0 All_Digital = True EWrite 0,[%00000100,%00000110,%01111111,%00000110,%00000100] 'Up Arrow EWrite 5,[%00010000,%00110000,%01111111,%00110000,%00010000] 'Dn Arrow EWrite 10,[%01111110,%00010001,%00010001,%00010001,%01111110] 'A EWrite 15,[%01111111,%01001001,%01001001,%01001001,%00110110] 'B EWrite 20,[%00111110,%01000001,%01000001,%01000001,%00100010] 'C EWrite 25,[%01111111,%01000001,%01000001,%00100010,%00011100] 'D EWrite 30,[%01111111,%01001001,%01001001,%01001001,%01000001] 'E EWrite 35,[%01111111,%00001001,%00001001,%00001001,%00000001] 'F EWrite 40,[%00111110,%01000001,%01001001,%01001001,%01111010] 'G EWrite 45,[%01111111,%00001000,%00001000,%00001000,%01111111] 'H EWrite 50,[%00000000,%01000001,%01111111,%01000001,%00000000] 'I EWrite 55,[%00100000,%01000000,%01000001,%00111111,%00000001] 'J EWrite 60,[%01111111,%00001000,%00010100,%00100010,%01000001] 'K EWrite 65,[%01111111,%01000000,%01000000,%01000000,%01000000] 'L EWrite 70,[%01111111,%00000010,%00000110,%00000010,%01111111] 'M EWrite 75,[%01111111,%00000100,%00001000,%00010000,%01111111] 'N EWrite 80,[%00111110,%01000001,%01000001,%01000001,%00111110] 'O EWrite 85,[%01111111,%00001001,%00001001,%00001001,%00000110] 'P EWrite 90,[%01111111,%00001001,%00011001,%00101001,%01000110] 'R EWrite 95,[%01000110,%01001001,%01001001,%01001001,%00110001] 'S EWrite 100,[%00000001,%00000001,%01111111,%00000001,%00000001] 'T EWrite 105,[%00111111,%01000000,%01000000,%01000000,%00111111] 'U EWrite 110,[%00011111,%00100000,%01000000,%00100000,%00011111] 'V '________________________________________________________________ 'Deklaracija promjenjivih '________________________________________________________________ Dim kolona As Byte Dim brojac As Byte Dim k As Byte Dim scan As Byte Dim scroll As Byte leddata var Byte[100] Dim ir_ulaz As Word ' WORD variabla za zaprimanje podataka Dim EEpromAdress As Byte 'eprom adresa za upis Dim test As Word 'uporedjivach Dim upisi As ir_ulaz.LowByte Dim i As Byte Dim sledeceslovo As Word Dim prethodnoslovo As Word Dim potvrdi As Word Dim kraj As Word Dim x As Byte Dim j As Byte Dim cnt As Byte '________________________________________________________________ 'poetene vrijednosti '________________________________________________________________ EEpromAdress = 255 cnt=0 k=109 j=0 '________________________________________________________________ 'Inicijalizacija '________________________________________________________________ High PORTD.0 DelayMS 1300 Low PORTD.0 DelayMS 1300 '________________________________________________________________ 'pregledaj eeprom ako ima sta idi na main ako ne idi na pripremu '________________________________________________________________ provjera: test.LowByte = ERead EEpromAdress 'iscitaj zapis iz eeproma sa adrese 255 If test.LowByte = $FF Then 'ako je FF pici dalje GoSub eepromprogON DelayMS 1000 EndIf test.LowByte = ERead 255 If test.LowByte <> $FF Then GoSub odaberporuku DelayMS 1000 EndIf '******************************************************************* Declare RC5In_Pin PORTC.7 'infrared sensor pin '******************************************************************** main: Clear Low PORTD.0 j=0 leddata[0-13] = $00 For i = 0 To 4 k=115 leddata [i+14]=ERead k+i 'B leddata [19]=$00 leddata [i+20]=ERead k+i+6 'B leddata [25]=$00 leddata [i+26]=ERead k+i+12 'B leddata [31]=$00 leddata [i+32]=ERead k+i+18 'B Next For scroll = 0 To 37 ' For scan = 0 To 50 PORTC.1 = 1 'reseting 4017 PORTC.1 =0 For kolona = 0 To 14 PORTC.0 = 1 'clock 4017 PORTC.0 =0 PORTB = leddata[kolona] DelayUS 150 PORTB=0 Next Next For brojac = 0 To 36 leddata[brojac]=leddata[brojac+1] Next Next GoTo main eepromprogON: High PORTD.0 Repeat ir_ulaz.LowByte= RC5In ' Primanje signala sa TSOP1738 Until upisi<> 255' Trazi-cekaj dok ne naleti valjano zaglavlje signala EWrite EEpromAdress , [ ir_ulaz.LowByte ] sledeceslovo.LowByte = ERead EEpromAdress Low PORTD.0 DelayMS 100 High PORTD.0 DelayMS 100 Low PORTD.0 DelayMS 100 High PORTD.0 Repeat ir_ulaz.LowByte= RC5In ' Primanje signala sa TSOP1738 Until upisi<> 255' Trazi-cekaj dok ne naleti valjano zaglavlje signala EEpromAdress=EEpromAdress - 1 EWrite EEpromAdress , [ ir_ulaz.LowByte ] prethodnoslovo.LowByte = ERead EEpromAdress Low PORTD.0 DelayMS 100 High PORTD.0 DelayMS 100 Low PORTD.0 DelayMS 100 High PORTD.0 Repeat ir_ulaz.LowByte= RC5In ' Primanje signala sa TSOP1738 Until upisi<> 255' Trazi-cekaj dok ne naleti valjano zaglavlje signala EEpromAdress=EEpromAdress - 1 EWrite EEpromAdress , [ ir_ulaz.LowByte ] kraj.LowByte = ERead EEpromAdress Low PORTD.0 DelayMS 100 High PORTD.0 DelayMS 100 Low PORTD.0 DelayMS 100 High PORTD.0 Repeat ir_ulaz.LowByte= RC5In ' Primanje signala sa TSOP1738 Until upisi<> 255' Trazi-cekaj dok ne naleti valjano zaglavlje signala EEpromAdress=EEpromAdress -1 EWrite EEpromAdress , [ ir_ulaz.LowByte ] potvrdi.LowByte = ERead EEpromAdress For x=0 To 5 Toggle PORTD.0 DelayMS 100 x=x+1 Next x=0 EEpromAdress=0 Return odaberporuku: High PORTD.0 While ir_ulaz.LowByte<>kraj.LowByte Repeat ir_ulaz.LowByte= RC5In ' Primanje signala sa TSOP1738 Until upisi<> 255' Trazi-cekaj dok ne naleti valjano zaglavlje signala If ir_ulaz.LowByte=sledeceslovo.LowByte Then For i = 0 To 4 leddata [i]=ERead i+cnt ' Next For scan = 0 To 185 PORTC.1 = 1 'reseting 4017 PORTC.1 =0 For kolona = 0 To 4 PORTC.0 = 1 'clock 4017 PORTC.0 =0 PORTB = leddata[kolona] DelayUS 500 PORTB=0 Next Next If cnt=115 Then cnt=0 EndIf cnt=cnt+5 ' j=j+1 ElseIf ir_ulaz.LowByte=prethodnoslovo.LowByte Then cnt=cnt-5 For i = 0 To 4 leddata [i]=ERead i+cnt ' Next For scan = 0 To 185 PORTC.1 = 1 'reseting 4017 PORTC.1 =0 For kolona = 0 To 4 PORTC.0 = 1 'clock 4017 PORTC.0 =0 PORTB = leddata[kolona] DelayUS 500 PORTB=0 Next Next If cnt=0 Then cnt=115 EndIf ' j=j+1 'zapamti slovo u eeprom na lokaciji 115 pa nadalje! ElseIf ir_ulaz.LowByte=potvrdi.LowByte Then k=k+6 For i = 0 To 4 leddata [i]=ERead i+cnt ' Next For i = 0 To 4 EWrite (i+k),[leddata [i]] ' DelayMS 20 Next Low PORTD.0 DelayMS 200 High PORTD.0 ' j=j+1 'elseIf ir_ulaz.LowByte=kraj.lowbyte and j<>0 Then GoTo main EndIf Wend 'goto main Return End!!! thx again for help from everyone spacially wellyboot
Last edited by xxxxxx; - 11th February 2011 at 07:12.
to xxxxxx
thanks for the fast reply,it doesn't need full clear schematic just give what u modified/add to original one by 4017,i mean just how to connect,even hand draw on paint software is ok..
thanks n waiting for ur reply;;
krish
http://www.electro-tech-online.com/a...-expansion.jpgit doesn't need full clear schematic just give what u modified/add to original one by 4017
krish
well i use this schematic, clock is coming from portc.0, and reset is conected to portc.1, hope this would help
Last edited by Archangel; - 15th March 2015 at 16:20. Reason: remove script & spell
im use pic 16f877a... please help me... anybody also can help me...
Owing to where you live, your city has about 60 square miles more space and 3.5 million less people, which all somewhat resemble one another, you will very likely not encounter a problem there. Not so lucky here.
HERE you see drivers with signage, they are usually the worst drivers on the road, I got behind one last month with Oregon plates, Obama and Save The Whales stickers waiting to turn left on a green light when the opposing traffic was facing a red light, and she sat and waited while they turned right in front of her. In LA LA Land eat my dust might just get a body shot. Sadly, It happens here, not a lot, but it happens.
Good luck with your project, it looks like you have gotten a handle on it, I was thinking, if you only want one message, why include the entire alphabet? It would seem you only need a few letters (7), or are you intending to make an ever changing string ?
EDIT: the above (last paragraph) is in reference to your earlier code, actually wellyboot's code or for about $20 you can get a license plate frame with this feature built in.
Last edited by Archangel; - 9th February 2011 at 04:16.
If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
.
Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
.
There simply is no "Happy Spam" If you do it you will disappear from this forum.
Above was just a cut and paste from a previous project that scrolled different infomation, I had stored the entire alphabet in the eeprom and just read the charactors i needed as required.
You could add a few buttons to the project so that different messages can be displayed.
'Baby on Board', 'Child on board', 'Back Off!!', 'Eat my Dirt' - hopefully you wont get shot at!
Some of my projects: http://www.youtube.com/user/wellyb00t
hello mr.fratello... can you help me? im very need your help.. i want to do font moving display... but the coding is complicated to me... can u teach me about the coding for font moving display...
Bookmarks