Termometru digital cu EvB 4.3

Am postat acum ceva timp in articolul despre placa de dezvoltare EvB 4.3 o poza cu LCD-ul placii respective afisand temperatura din camera. Recent am fost intrebat despre programul care ruleaza pe placa respectiva pentru a arata temperatura si despre configuratia hardware. Din cate imi aduc aminte, atunci am avut ceva probleme cu afisarea, in sensul ca folosind programele demo care vin cu placa si care sunt disponibile aici, dupa recompilare (Rebuild All) nimic nu mai functiona cum trebuie. Asa ca am pus cap la cap diverse surse si am reusit sa obtin un program functional, pe care il voi pune mai jos.

EvB 4.3 - Termometru

EvB 4.3 - Termometru, senzor conectat corect

Configuratua hardware este urmatoarea:

  • senzorul de temperatura DS18B20 legat pe pinul PD6 (in spatele senzorului de temperatura si al senzorului infrarosu sunt doi pini – cel din stanga este pentru temperatura si se leaga la PD6)
  • LCD-ul este legat astfel: D4 – PA4, D5 – PA5, D6 – PA6, D7 – PA7, E – PA3, RS – PA2, BL – 5V (backlight, poate fi neconectat)

Referitor la partea de program, am folosit pentru citirea senzorilor (se pot lega mai multi si am testat asta cu succes) am folosit aplicatia lui Martin Thomas, disponibila aici. Am folosit versiunea 0.8, se pare ca intre timp Martin Thomas a mai lansat si alte versiuni.

Pentru partea de afisare pe LCD am folosit libraria disponibila aici. Restul adaptarilor le-am facut eu. Programul scoate in continuare pe serial temperatura si diverse alte mesaje pentru debugging.

Output Termometru

Output Termometru

Daca senzorul este neconectat, programul arata un mesaj de eroare, ca mai jos.

EvB 4.3 - Termometru, senzor deconectat

EvB 4.3 - Termometru, senzor deconectat

Programul complet se poate descarca aici: evb43_ds18x20.zip.

Succes!

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

11 Comments »

 
  • yo9hnf says:

    Salut !

    Am incercat si eu firmware-ul tau pe placa EVB 4.3 si tot ce-mi afiseaza pe LCD este “DS18B20 TEST” care clipoceste. Si cu senzor si fara senzor la fel face.

    HEXul l-am “ars” cu AvrDude si cu programatorul ISP de pe placa EVB 4.3

    radu

  • admin says:

    Ai atmega16 sau 32? Daca te conectezi cu Hyperterminal la placa zice ceva?

    Sent from my HTC

  • yo9hnf says:

    Nu stiu cum sa ma conectez cu HyperTerminal la placa.
    Folosesc ATMega32.

    Placa merge perfect.
    DS18b20 de pe ea merge perfect.

    Am mai avut doi senzori si i-am conectat in paralel si cu un programel am reusit sa citesc secvential fiecare senzor (la inceputul proramului citindu-i IDul fiecaruia).

    OFF TOPIC : de ce nu sunt atentionat pe mail ca s-a dat replay ?

  • admin says:

    1. Ai recompilat proiectul? E compilat pentru atmega16 si e posibil ca asta sa fie problema. In AVR Studio mergi la Project -> Configuration Options, la Device pui atmega32 si la Frequency presupun ca 16000000.

    2. Pentru a te conecta la placa si a vedea daca aplicatia trimite ceva, deschizi hyperterminal, putty, hercules sau orice alt program de tip “terminal”, alegi portul COM pe care e placa (la mine e COM17 asa cum se vede in poza a doua), setezi viteza 19200 bauds si dai open. Ar trebui ca placa sa trimita ceva si sa vezi niste mesaje, inclusiv temperatura citita de senzori.

    3. Nu stiu de ce nu esti atentionat.

  • Radu says:

    Salut. Am si eu o intrebare. Am folosit si eu programul tau pentru placa de dezvoltare EVB4.3 V2 care are atmega32. Am recompilat pt atmega32 si temperatura e afisata pe LCD dar pe hyperterminal nu afiseaza nimic si am facut tot ce ai zis tu la punctul 2 din mesajul din decembrie. Trebuie sa fac modificari in cod?

  • admin says:

    Esti sigur ca te conectezi pe portul potrivit? Fa un program simplu care sa trimita ceva pe serial si vezi daca asa merge. Daca iti merge afisarea, ar trebui sa mearga si transmisia.

  • Radu says:

    Salut. Am o nelamurire legat de transmisia pe serial. Cum ai conectat firul de serial la placuta? Ai folosit un MAX232 sau pur si simplu ai conectat pinii la RX TX si GND de la cablu serial DB9 la microcontroller.

  • admin says:

    Am folosit mufa USB de pe placa si am conectat placa la un port USB de la laptop. Windows XP si mai noi instaleaza automat driver-ul pentru chip-ul FTDI de pe placa si vei avea un COMx disponibil.

  • Dragosh says:

    Am achizitionat aceasta placa de dezvoltare si am incercat softul cu termometrul. Am incercat toate variantele. In putty imi apare un caracter ciudat de fiecare data cand dau reset. Lcd-ul nu afiseaza nimic. Am o vaga impresie ca s-ar putea sa fie din cauza clock-ului, sa trebuiasca setati fuse biti pe extern. Daca poti sa ma ajuti in vrun fel as fi recunoscator.

  • admin says:

    Da, la mine este folosit oscilatorul extern. Totusi, cred ca poti modifica in surse atunci cand compilezi, sa foloseasca setarile tale (oscilator intern, frecventa mai mica etc.).

  • Dragosh says:

    Nu reusesc sa afisez nimic pe LCD. Am incercat cu fisierul in bascom de la ei de pe site si a mers. Nu-mi dau seama ce se intampla.

 

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>