Sari la conținut
ELFORUM - Forumul electronistilor

AT89C2051 -> afisaj grafic Nokia 3310


Vizitator Maca

Postări Recomandate

  • Răspunsuri 21
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • TECH_FUN

    3

  • BRANCA

    2

  • one

    1

Vizitator 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

 

Din graba si pana de memorie (umana) am comis o evidenta inexactitate. Dupa defilarea ultimei litere a alfabetului urmeaza un caracter special de iesire (eu il concepusem ca un patrat plin cu latura maxima - 8 led-uri - pentru a fi mai strident) si apoi "pauza" (desigur, ordinea nu conteaza). Deci se poate iesi numai pe ACEST caracter! Deoarece au trecut peste 4 ani de la experiment, am oarecari circumstante atenuante.

 

Maca

Link spre comentariu
Vizitator Maca

" 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.

Ca sa scap de problemele cu alimentarea tip colector cu perii ma gindeam la folosirea a doua motoare legate solidar pe o aceeasi axa, facuta din material izolant din punct de vedere electric. Daca se fixeaza bratul cu led-rile perpendicular pe acest ax izolat e posibil sa alimentez montajul electronic (asezat pe brat) chiar prin carcasa metalica a motoarelor. Doua motoare inseamna totodata si forta dubla.Da, ma gindisem si eu la treaba aia cu mai multe afisoare pentru a reduce viteza de rotatie, numai ca la o aplicatie putin diferita: un ziar luminos rotativ dar aplatizat, nu circular propriu-zis (cam ca o banda transportoare pusa pe verticala). Cu respectMaca
Link spre comentariu
Vizitator Maca

Interesant...dar probabil trebuie sa ai mai mult decat suficienta rabdare sa alcatuiesti o fraza...

Ai perfecta dreptate, dar cu PWM (Pulse-width modulation) cred ca lucrurile s-ar imbunatati.Maca
Link spre comentariu

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.

Din "intimplare" nu ai realizat cu afisorul de Nokia si un frecventmetru?Ar fi un proiect mai ieftin decit pe afisoarele Lcd 2x16.
Link spre comentariu
Vizitator 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.

Din "intimplare" nu ai realizat cu afisorul de Nokia si un frecventmetru?Ar fi un proiect mai ieftin decit pe afisoarele Lcd 2x16.
Nu, n-am incercat decit un singur experiment cu afisorul de la Nokia: un dictionar francez-roman, cu 4 memorii 24C256, ca una mai mare n-am gasit atunci pe piata. Am vazut ca merge, ca stiu cum se poate face, asa ca l-am abandonat fiindca m-am luat cu altele.Dar uite-te la http://www.mcselec.com/index.php?option ... &Itemid=57 Ce-ai zice daca incerc sa-i modific softul sa afiseze pe lcd-ul Nokia?Maca
Link spre comentariu

Am vazut proiectul.E interesant,desi e limitat la valoarea maxima a frecventei citite[250kHz].

Toate proiectele pe AVR-uri sau Pic-uri merg la 10-50 Mhz.

Proiectele pe AT89C2051 vor mai merge putin timp,deoarece se vor scoate din productie!Incercam sa ne invatam cu AVR-urile in Bascom.

Daca "misti" ceva-posteaza!Macar de dragul testarii unui nou montaj!

Uite aici,in germana un exemplu pt Atmega http://www.mkprojekt.de/3310.php

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări