Jump to content
ELFORUM - Forumul electronistilor
Guest Maca

AT89C2051 -> afisaj grafic Nokia 3310

Recommended Posts

Guest Maca

Daca intereseaza pe cineva, am realizat o schema de comanda a afisorului grafic de la un telefon Nokia 3310 cu microcontrolerul AT89C2051. Preluarea datelor se face dintr-o memorie 24Cxxx. Tot cu AT89C2051 am realizat si un ziar luminos rotativ, un ceas suprapus pe imaginea TV, o afisare multipla secventiala cu afisor jumbo recuperat de la un calculator de buzunar, controlul optic al invirtirii apometrului de apartament (anti-inundatie) etc.

Link to post
Share on other sites

Guest MCL2k6

Salutare,am o intrebare la tine legat de un ATMEGA8535.Am gasit pe net un proiect de interfata joystick care se conecteaza la USB.Aceasta schema folosea ATMEGA8, si mai recent ATMEGA16.Intrebarea mea este, pot sa le inlocuiesc cu ATMEGA8535 (am 2 bucati de la cineva, si vreau sa le gasesc o utilizare)???

Link to post
Share on other sites
Guest Maca

Salutare,am o intrebare la tine legat de un ATMEGA8535.Am gasit pe net un proiect de interfata joystick care se conecteaza la USB.Aceasta schema folosea ATMEGA8, si mai recent ATMEGA16.Intrebarea mea este, pot sa le inlocuiesc cu ATMEGA8535 (am 2 bucati de la cineva, si vreau sa le gasesc o utilizare)???

Eu nu ma pricep la ATMEGA dar, ca sa nu te amaresc, am intrebat un cunoscator. Iata ce mi-a raspuns:"Poate sa inlocuiasca atmega16 cu 8535 dar doar daca incape programul. In plus cel mai probabil mai trebuie niste modificari la initializari. Nu il costa nimic sa incerce si direct, pune soclu la CPU si daca nu ii merge cu 8535 fara modificari si nu stie sa le faca poate sa treaca pe atmega16 dar NU si pe atmega8 care e alta treaba."Am spus si m-am mintuitMaca
Link to post
Share on other sites
Guest MCL2k6

Eu nu ma pricep la ATMEGA dar, ca sa nu te amaresc, am intrebat un cunoscator. Iata ce mi-a raspuns:"Poate sa inlocuiasca atmega16 cu 8535 dar doar daca incape programul. In plus cel mai probabil mai trebuie niste modificari la initializari. Nu il costa nimic sa incerce si direct, pune soclu la CPU si daca nu ii merge cu 8535 fara modificari si nu stie sa le faca poate sa treaca pe atmega16 dar NU si pe atmega8 care e alta treaba."Am spus si m-am mintuitMaca

Multumesc pentru informatii, sa vedem ce iese!!! Partea naspa e ca autorul softului nu a publicat si codul sursa pentru aplicatia de ATMEGA16... :axe:
Link to post
Share on other sites

Guest Maca

Ziar luminos rotativ ???? :rolleyes: Dezvolti un pic?

E vorba de un montaj ROTATIV in care un microcontroler aprinde, dupa o anumita succesiune, 8 led-uri (de preferat multicolore) fixate vertical in linie (una linga alta). Se creeaza astfel, datorita efectului de persistenta a imaginii pe retina, impresia unui text (oricit de lung) care se deplaseaza circular. Textul poate fi incarcat sau modificat/sters IN TIMPUL ROTATIEI (nu e nevoie sa fie preinregistrat!)Maca
Link to post
Share on other sites
Guest florin_o

Salut !

Textul poate fi incarcat sau modificat/sters IN TIMPUL ROTATIEI (nu e nevoie sa fie preinregistrat!)

Cum ai facut asta ?
Link to post
Share on other sites
Guest Maca

Salut !

Textul poate fi incarcat sau modificat/sters IN TIMPUL ROTATIEI (nu e nevoie sa fie preinregistrat!)

Cum ai facut asta ?
Ai gicit: cu o fotodioda pe montajul in rotatie si un led emitator asezat pe postament (deci fix), dar undeva pe cirumferinta. Cind vin una deasupra celeilalte si emitatorul e aprins, comand un sub-program din microorocesor (o intrerupere) care declanseaza sub-programul de setari etc.Cu respectMaca
Link to post
Share on other sites

Nu, n-am ghicit, doar mi-am amintit de un proiect de-al meu mai vechi tot cu at89c2051, un ceas cu leduri rotativ, pe acelasi principiu cu al tau ziar, doar ca ledurile nu se rotesc in plan orizontal ci vertical, la care setarea orei trebuia sa o fac tot cu IR... Mie mi-a dat mare bataie de cap stabilitatea afisarii, adica sa fac sa se vada stabile punctele corespunsatoare orelor. Ac lucru il faceam cu un timer presetabil care se incrementa sau decrementa, dupa cum era necesar.. Ideea e ca, o rotatie completa a barei de leduri dura 360 de timere complete, si modificand cu un singur pas timerul, se simtea un "tremurici" al afisarii din ce ince mai mare spre capatul cursei, astfel ca punctul de ora 12 era de-a dreptul jenant :) Cand in final am stabilit un algoritm care sa reduca problema la atat cat sa nu fie observabila, deja m-am plictisit de proiect :smt003 si pt ceva timp l-am lasat deoparte. Iti doresc succes in proiectele viitoare :)

Link to post
Share on other sites

Guest Maca

Nu, n-am ghicit, doar mi-am amintit de un proiect de-al meu mai vechi tot cu at89c2051, un ceas cu leduri rotativ, pe acelasi principiu cu al tau ziar, doar ca ledurile nu se rotesc in plan orizontal ci vertical, la care setarea orei trebuia sa o fac tot cu IR... Mie mi-a dat mare bataie de cap stabilitatea afisarii, adica sa fac sa se vada stabile punctele corespunsatoare orelor. Ac lucru il faceam cu un timer presetabil care se incrementa sau decrementa, dupa cum era necesar.. Ideea e ca, o rotatie completa a barei de leduri dura 360 de timere complete, si modificand cu un singur pas timerul, se simtea un "tremurici" al afisarii din ce ince mai mare spre capatul cursei, astfel ca punctul de ora 12 era de-a dreptul jenant :) Cand in final am stabilit un algoritm care sa reduca problema la atat cat sa nu fie observabila, deja m-am plictisit de proiect :smt003 si pt ceva timp l-am lasat deoparte. Iti doresc succes in proiectele viitoare :)

Da, vertical e mai dificil. Pe mine ma interesa pe atunci sa vad cit de fezabil ar fi fost un ziar luminos jumbo, cu raza de cel putin un metru. Am facut (amatoristic) niste experiente pe o terasa si mi-am dat seama ca problemele mecanice ma copleseau. La viteza minima de rotatie ceruta (cam 10 rot/sec.) inca apar niste forte centrifuge atit de serioase (si periculoase!), chiar si cu incarcatura minimala, incit m-am lasat pagubas de calea asta. Dar m-am gindit si stiu acum o alta metoda, mai fiabila. Totusi, pentru raze mici (primele incercari le-am facut cu un ziar luminos care incapea in globurile alea de sticla de la jucariile chinezesti de Craciun!) nu-s mari probleme si efectul e destul de spectaculos. Si acum destul, ca te plictisesc.Maca
Link to post
Share on other sites
Guest florin_o
Salut !
Textul poate fi incarcat sau modificat/sters IN TIMPUL ROTATIEI (nu e nevoie sa fie preinregistrat!)

Cum ai facut asta ?

 

Ai gicit: cu o fotodioda pe montajul in rotatie si un led emitator asezat pe postament (deci fix), dar undeva pe cirumferinta. Cind vin una deasupra celeilalte si emitatorul e aprins, comand un sub-program din microorocesor (o intrerupere) care declanseaza sub-programul de setari etc.

 

Cu respect

Maca

Deci bratul nu se invarte cand incarci mesajul de afisat...

Link to post
Share on other sites
Guest florin_o
Salut !
Textul poate fi incarcat sau modificat/sters IN TIMPUL ROTATIEI (nu e nevoie sa fie preinregistrat!)

Cum ai facut asta ?

 

Ai gicit: cu o fotodioda pe montajul in rotatie si un led emitator asezat pe postament (deci fix), dar undeva pe cirumferinta. Cind vin una deasupra celeilalte si emitatorul e aprins, comand un sub-program din microorocesor (o intrerupere) care declanseaza sub-programul de setari etc.

 

Cu respect

Maca

Deci bratul nu se invarte cand incarci mesajul de afisat...

Link to post
Share on other sites

" cu o fotodioda pe montajul in rotatie"deci se incarca in timpul rotatiei.M-am gandit si eu la o asemenea comunicare dar nu am facut, pt. ca am considerat ca nu merita complicatia, pur si simplu opresti jucaria, introduci textul, pornesti iar.Am incercat si eu o astfel de jucarie.La inceput am facut-o cu circuite digitale cmos din seria 4xxx si memorie EPROM. Circuitul era realizat din 2 placi de cablaj, suprapuse cu distantiere, iar impulsurile luminoase erau sincronizate cu viteza de rotatie a motorului, cu un multiplicator de frecventa realizat cu CD4046. Led-urile se aflau pe un suport vertical.Imi pare rau ca nu am facut poze atunci, ar fi fost acum ceva f. amuzant.Ce vremuri....Dupa aceea am relizat cu microcontroller si a fost mai simplu, mai ales ca am facut o singura placa, ce constituia in acelasi timp si bratul. Si la aceasta led-urile se aflau pe un suport vertical.Mi-am dat seama ca nu este necesar sa sincronizez afisarea cu miscarea bratului, doar punctul de start e necesar, variatiile de viteza fiind practic nule.La stadiul de proiect a ramas un sistem fara microcontroller, dar care necesita o comunicatie continua intre calculator si "jucarie". M-am gandit la plasarea unei fotodiode in centrul de rotatie, astfel incat un emitator optic plasat deasupra i-ar fi transmis continuu informatii. O alta varianta ar fi fost o transmisie radio simpla, pe vreo 400-500MHz.Datele se incarcau serial in niste registri de deplasare cu intrare seriala si iesire paralela.Din nefericire, nu am pus in practica acest proiect.Si eu m-am lovit de dificultati mecanice. In primul rand echilibrarea ansamblului, in al doilea rand, alimentarea modulului.Singurul mod in care am reusit alimentarea, a fost cu ajutorul unui colector, cu perii, asemanator celui de la alternatorul auto. Experientele mele privind alimentarea cu ajutorul unor transformatoare care sa aiba o parte fixa si una mobila, nu au reusit.O alta problema a fost luminozitatea led-urilor, care era maxima atunci cand led-urile erau indreptate spre mine, dar cand se departau de aceasta pozitie de centru nu se mai vedeau. Aceasta problema am rezolvat-o intr-o anumita masura cu ajutorul led-urilor smd, care nu aveau lentila, deci se vedeau cam la fel din orice unghi.In legatura cu afisajul de mari dimensiuni: Si acesta a fost in planul meu, dar nu l-am realizat. Solutia pe care am vazut-o eu a fost sincronizarea afisajului cu rotatia motorului, asa cum am facut in prima mea experienta. Astfel, la o rotatie a bratului, exista un nr. fix de "coloane" luminoase, numar care este fixat dinainte.Se folosesc mai multe afisoare luminoase, sa zicem 4, dispuse la 90°. Textul afisat de acestea este intarziat cu 1/4 din nr. de coloane, astfel incat "imaginile" generate de acestea se suprapun, permitand astfel reducerea vitezei de rotatie, mentinand totusi o rata de reimprospatare suficienta.

Link to post
Share on other sites
Guest Maca
Salut !
Textul poate fi incarcat sau modificat/sters IN TIMPUL ROTATIEI (nu e nevoie sa fie preinregistrat!)

Cum ai facut asta ?

 

Ai gicit: cu o fotodioda pe montajul in rotatie si un led emitator asezat pe postament (deci fix), dar undeva pe cirumferinta. Cind vin una deasupra celeilalte si emitatorul e aprins, comand un sub-program din microorocesor (o intrerupere) care declanseaza sub-programul de setari etc.

 

Cu respect

Maca

Deci bratul nu se invarte cand incarci mesajul de afisat...

 

Ba tocmai ca se invirte! Rolul emitatorului/receptorului e sa faca in regimul dinamic (adica al rotatiei bratului) ceea ce face in regim static (cu bratul oprit) orice buton de sonerie, de pilda.

Hai sa ne gindim la un program mai simplist de setari: pornim de la momentul cind bratul se roteste iar led-urile sint toate stinse. Apasam o scurta fractiune de secunda led-ul emitator. E de presupus ca pe aceasta perioada fotodioda de pe montajul in miscare va intilni lumina de la emitator cel putin o data, deci va declansa in microprocesor executarea unui programel de intrare in setari. Brusc se aprind de pilda primele doua led-uri, apoi la interval de cite o secunda se mai aprind doua, apoi inca doua, in fine si ultimele doua, deci acum sint toate 8 aprinse. Asta se percepe vizual astfel: o secunda inel subtire, o secunda inel mai gros, o secunda inel foarte gros, o secunda stinse toate 8 led-uri, dupa care ciclul se reia la nesfirsit atita vreme cit nu comandam din nou emitatorul.

Sa zicem ca atunci cind am conceput soft-ul pentru microprocesor am atribuit inelului subtire functia "scrie litera", inelului mai gros functia "deplaseaza cursorul un spatiu la stinga", inelului cel mai gros functia "start defilare text" si in fine perioadei de led-uri stinse functia "sterge tot".

Asteptam, si cind apara inelul subtire aprindem o fractiune de secunda emitatorul. Se apeleaza astfel un alt programel din microprocesor care paraseste inelele si face sa defileze undeva la mijlocul cursei de rotatie (pentru comoditate) literele in succesiunea lor alfabetica, fiecare timp de cite o secunda. Dupa ultima litera ("z") urmind o pauza (pentru separatia intre cuvinte), apoi defilarea se reia cu "a" "b"...etc. Cind apare litera dorita, dam un scurt impuls emitatorului si pe ziar apare permanent prima litera din textul de afisat, in dreapta ei reluindu-se defilarea pomenita mai sus. Cu putina atentie si rabdare se pot alcatui fraze intregi. Cind am terminat sau vrem sa modificam, asteptam sa se termine alfabetul si iesim pe "pauza" revenind in meniul initial de setari unde ne putem iar alege functia dorita etc. etc.

Sigur ca asta o maniera destul de grosolana, un soft-ist priceput rafineaza cu siguranta procedurile, dar aici conta sa explic principiul cu care am experimentat eu. Si nici pe departe nu cred ca e singurul principiu sau macar cel mai bun.

 

Maca

Link to post
Share on other sites

Join the conversation

You can post now and register later. 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.   Paste as plain text instead

  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.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines