SlideShare a Scribd company logo
Textul si imaginile din acest document sunt licentiate
Attribution-NonCommercial-NoDerivs
CC BY-NC-ND
Codul sursa din acest document este licentiat
Public-Domain
Esti liber sa distribui acest document prin orice mijloace consideri (email, publicare pe website / blog, printare,
sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul sursa din acest document
poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici un fel de limitari.
Arduino si protocolul One Wire
Ce este protocolul One Wire ?
Nu este decat un alt protocol care iti permite sa interconectezi diverse dispozitive periferice, in
special senzori, direct cu placa Arduino. Spre exemplu, senzorul de temperatura DS18B20 este un
senzor care face decat conversia temperaturii. Dar avantajul vine datorita interfetei cu care senzorul este
dotat.
Interfata identifica in mod unic senzorul cu care placa Arduino comunica. Asta inseamna ca nu
esti limitat in a utiliza unul sau doi senzori. In schimb, poti folosi zeci de senzori conectati in retea,
folosind ca si magistrala de date un singur fir. De aici vine si numele protocolului – One Wire.
Cati senzori pot folosi ? Nu exista un numar clar deoarece trebuie sa iei in calcul foarte multe
aspecte cum ar fi: distanta intre senzori, tipul de cablu folosit, sursa de alimentare, ecranarea cablului,
parazitii externi s.a.m.d.
Iti propun sa studiezi un ghid care te poate ajuta in proiectarea unei retele One Wire de
dimensiuni mari:
http://www.maximintegrated.com/app-notes/index.mvp/id/148
Senzorul de temperatura DS18B20.
Iata cateva lucruri interesante despre acest senzor:
• Conversia temperaturii o face la rezolutii mari cuprinsa intre 9 si 12 biti.
• Are o functie interesanta de alarmare atunci cand temperatura citita depaseste limitele
programate de utilizator.
• Poti alimenta senzorul in modul parasite (parasite power). La ce te ajuta modul asta ? Afla mai
jos.
• Fiecare senzor are un cod unic pe 64 de biti. Asta inseamna ca poti interconecta foarte multi
senzori, pe acelasi fir, sub forma unei retele.
http://www.robofun.ro/forum
• Poate masura temperaturii negative (pana la -55 de grade Celsius) dar si pozitive (pana la 125 de
grade Celsius) cu o acuratete de ± 0.5 grade.
• Poate fi alimentat cu tensiuni cuprinse intre 3 si 5.5V.
Modul parasite power ?
In mod normal, senzorul necesita 3 fire pentru o functionare corecta, respectiv 2 fire de
alimentare si un fir One Wire. Un lucru interesant este ca senzorul iti permite sa renunti la un fir de
alimentare si sa folosesti doar cele 2 fire ramase.
Practic modul parasite power iti permite sa alimentezi, dar sa si „vorbesti“ cu senzorul folosind
firul GND si firul One Wire. In acest caz, firul One Wire este folosit pentru 2 lucruri: alimentarea
senzorului si comunicatia cu placa Arduino.
Lucrul asta este foarte util atunci cand vrei pur si simplu sa scazi costurile pentru cel de-al
treilea fir. Aceasta tehnologie se foloseste foarte des in industria producatoare de masini. Doar prin
eliminarea firului de alimentare al senzorilor, o masina foloseste pana la 50 m de cablu, in timp ce o
masina echipata cu senzori din generatia precedenta (care foloseste toate cele 3 fire) poate folosi pana la
600 m de cablu. Mai ales ca depanarea unei probleme se poate face mult mai repede si mult mai usor.
Cat timp dureaza sa verifici continuitatea unui cablu de 50 m si a unuia de 600 ? Ce probleme apar oare
in cazul cablului de 600 m ? (coliziuni pe magistrala, diafonie, s.a.m.d).
Daca doresti sa studiezi in plus modul parasite power, acceseaza link-ul de mai jos:
http://www.maximintegrated.com/app-notes/index.mvp/id/3754
Cum conectez senzorul de temperatura ?
Iata un proiect care iti permite sa conectezi 3 senzori de temperatura si sa ii afisezi pe un ecran
LCD, folosind o placa Arduino:
http://www.instructables.com/id/Temperature-with-DS18B20/
Diverse proiecte folosind placa Raspberry PI:
https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/temperature/
http://learn.adafruit.com/adafruits-raspberry-pi-lesson-11-ds18b20-temperature-
sensing/hardware
http://www.robofun.ro/forum
Pentru a conecta senzorul la o placa Arduino vei avea nevoie de 3 fire de conexiune si un
rezistor de 4.7K. Rezistorul se conecteaza intre pinul de date si pinul de alimentare VCC. Urmareste
diagrama de mai jos:
Cum comunica senzorul de temperatura cu placa Arduino ?
Pentru ca placa Arduino sa comunice corect cu senzorul de temperatura trebuie indepliniti 3
pasi:
1. Initializarea – in primul rand, orice tranzactie sau orice schimb de date incepe cu o secventa de
initializare. Secventa de initializare este alcatuita dintr-un semnal de reset transmis de placa
Arduino (master) urmat de un semnal de prezenta transmis de senzori (slave-uri). Semnalul de
prezenta este util pentru placa Arduino, pentru ca aceasta trebuie sa identifice prezenta
senzorilor pe magistrala One Wire.
2. Comenzi ROM – imediat dupa ce placa Arduino a identificat senzorii de pe magistrala urmeaza
un schimb de date folosind o serie de comenzi ROM. Spre exemplu, exista o comanda de
cautare (Search ROM) prin care master-ul (placa Arduino) identifica numarul slave-urilor de pe
magistrala si tipurile lor. Mai exista o comanda (Read ROM) care este utila doar daca pe
magistrala se afla conectat un singur senzor. In felul asta, placa Arduino nu pierde timp util la
cautarea altor senzori (pentru ca exista doar unul). O alta comanda se numeste Skip ROM
,atunci cand master-ul doreste sa se adreseze tuturor senzorilor. Acestea sunt doar cateva
comenzi, deoarece exista mult mai multe, fiecare avand un mod mai complex de functionare.
3. Comenzi specifice senzorului de temperatura – imediat ce placa Arduino a identificat senzorii
de temperatura prin comenzile ROM, urmeaza ca placa sa faca un schimb de date cu senzorul
in sine. Lucrul asta se face printr-un set specific de comenzi. Spre exemplu, comanda Convert T
prin care placa Arduino initializeaza o conversie de temperatura. Imediat dupa ce senzorul a
primit si a executat comanda de conversie, pune toata informatia pe un spatiu intern de
memorie format din 2 bytes. Urmeaza ca placa Arduino sa citeasca, prin alta comanda, spatiul
http://www.robofun.ro/forum
intern de memorie al senzorului. Aceasta comanda se numeste Read Scratchpad prin care
master-ul cireste toata zona de memorie a senzorului. Exista si alte comenzi de citire si scriere,
setare alarma, identificare senzori care functioneaza in modul parasite power s.a.m.d.
Studiaza fisa de catalog a senzorului pentru a descoperi mult mai multe comenzi specifice
senzorului:
http://robofun.ro/docs/DS18B20.pdf
http://www.robofun.ro/forum

More Related Content

Similar to Arduino protocolul 1 wire

Arduino capacitive sensor-robofun
Arduino capacitive sensor-robofunArduino capacitive sensor-robofun
Arduino capacitive sensor-robofunIulius Bors
 
Arduino comparatorul intern
Arduino comparatorul internArduino comparatorul intern
Arduino comparatorul internIulius Bors
 
Set prizecomandatedinarduino
Set prizecomandatedinarduinoSet prizecomandatedinarduino
Set prizecomandatedinarduinoIulius Bors
 
Arduino comunicatie i2c
Arduino comunicatie i2cArduino comunicatie i2c
Arduino comunicatie i2cIulius Bors
 
Arduino multiplexarea le-durilor
Arduino multiplexarea le-durilorArduino multiplexarea le-durilor
Arduino multiplexarea le-durilorIulius Bors
 
Conector bluetoothmatesilver arduino-pc
Conector bluetoothmatesilver arduino-pcConector bluetoothmatesilver arduino-pc
Conector bluetoothmatesilver arduino-pcIulius Bors
 
Arduino uno rfidid-12
Arduino uno rfidid-12Arduino uno rfidid-12
Arduino uno rfidid-12Iulius Bors
 
Arduino toraspberrypi firmata
Arduino toraspberrypi firmataArduino toraspberrypi firmata
Arduino toraspberrypi firmataIulius Bors
 
Raspberry pi firmata - arduino
Raspberry pi   firmata - arduinoRaspberry pi   firmata - arduino
Raspberry pi firmata - arduinoIulius Bors
 
Controlul unui motor pas cu pas
Controlul unui motor pas cu pasControlul unui motor pas cu pas
Controlul unui motor pas cu paskramactar
 
Arduino gsmgprs-shield-partea-a-2-a
Arduino gsmgprs-shield-partea-a-2-aArduino gsmgprs-shield-partea-a-2-a
Arduino gsmgprs-shield-partea-a-2-aIulius Bors
 
Arduino - PWM
Arduino - PWMArduino - PWM
Arduino - PWM
Ioana Culic
 
Curs gratuitarduino lectia8-comunicareethernet
Curs gratuitarduino lectia8-comunicareethernetCurs gratuitarduino lectia8-comunicareethernet
Curs gratuitarduino lectia8-comunicareethernetIulius Bors
 
Curs gratuitarduino lectia10-lcd-uri
Curs gratuitarduino lectia10-lcd-uriCurs gratuitarduino lectia10-lcd-uri
Curs gratuitarduino lectia10-lcd-uriIulius Bors
 
Servicii internet noutiuni uzuale
Servicii internet noutiuni uzualeServicii internet noutiuni uzuale
Servicii internet noutiuni uzualedief00
 
curs porti logice si circuite digitale lectie curs 2
curs porti logice si circuite digitale lectie curs 2curs porti logice si circuite digitale lectie curs 2
curs porti logice si circuite digitale lectie curs 2
dertify455
 
6 protocoale de retea
6 protocoale de retea6 protocoale de retea
6 protocoale de retea
Carolina Stochitoiu
 
Arduino indicatoare cp-usiram
Arduino indicatoare cp-usiramArduino indicatoare cp-usiram
Arduino indicatoare cp-usiramIulius Bors
 

Similar to Arduino protocolul 1 wire (20)

Arduino capacitive sensor-robofun
Arduino capacitive sensor-robofunArduino capacitive sensor-robofun
Arduino capacitive sensor-robofun
 
Arduino comparatorul intern
Arduino comparatorul internArduino comparatorul intern
Arduino comparatorul intern
 
Arduino eeprom
Arduino   eepromArduino   eeprom
Arduino eeprom
 
Set prizecomandatedinarduino
Set prizecomandatedinarduinoSet prizecomandatedinarduino
Set prizecomandatedinarduino
 
Arduino comunicatie i2c
Arduino comunicatie i2cArduino comunicatie i2c
Arduino comunicatie i2c
 
Arduino multiplexarea le-durilor
Arduino multiplexarea le-durilorArduino multiplexarea le-durilor
Arduino multiplexarea le-durilor
 
Conector bluetoothmatesilver arduino-pc
Conector bluetoothmatesilver arduino-pcConector bluetoothmatesilver arduino-pc
Conector bluetoothmatesilver arduino-pc
 
Arduino uno rfidid-12
Arduino uno rfidid-12Arduino uno rfidid-12
Arduino uno rfidid-12
 
Arduino toraspberrypi firmata
Arduino toraspberrypi firmataArduino toraspberrypi firmata
Arduino toraspberrypi firmata
 
Raspberry pi firmata - arduino
Raspberry pi   firmata - arduinoRaspberry pi   firmata - arduino
Raspberry pi firmata - arduino
 
Controlul unui motor pas cu pas
Controlul unui motor pas cu pasControlul unui motor pas cu pas
Controlul unui motor pas cu pas
 
Arduino gsmgprs-shield-partea-a-2-a
Arduino gsmgprs-shield-partea-a-2-aArduino gsmgprs-shield-partea-a-2-a
Arduino gsmgprs-shield-partea-a-2-a
 
Arduino - PWM
Arduino - PWMArduino - PWM
Arduino - PWM
 
Curs gratuitarduino lectia8-comunicareethernet
Curs gratuitarduino lectia8-comunicareethernetCurs gratuitarduino lectia8-comunicareethernet
Curs gratuitarduino lectia8-comunicareethernet
 
Cpu
CpuCpu
Cpu
 
Curs gratuitarduino lectia10-lcd-uri
Curs gratuitarduino lectia10-lcd-uriCurs gratuitarduino lectia10-lcd-uri
Curs gratuitarduino lectia10-lcd-uri
 
Servicii internet noutiuni uzuale
Servicii internet noutiuni uzualeServicii internet noutiuni uzuale
Servicii internet noutiuni uzuale
 
curs porti logice si circuite digitale lectie curs 2
curs porti logice si circuite digitale lectie curs 2curs porti logice si circuite digitale lectie curs 2
curs porti logice si circuite digitale lectie curs 2
 
6 protocoale de retea
6 protocoale de retea6 protocoale de retea
6 protocoale de retea
 
Arduino indicatoare cp-usiram
Arduino indicatoare cp-usiramArduino indicatoare cp-usiram
Arduino indicatoare cp-usiram
 

More from Iulius Bors

Raspberry pi wirelesshotspot
Raspberry pi wirelesshotspotRaspberry pi wirelesshotspot
Raspberry pi wirelesshotspotIulius Bors
 
Raspberry piuln2803
Raspberry piuln2803Raspberry piuln2803
Raspberry piuln2803Iulius Bors
 
Raspberry pi timelapse
Raspberry pi timelapseRaspberry pi timelapse
Raspberry pi timelapseIulius Bors
 
Raspberry pi lcd-shield20x4
Raspberry pi lcd-shield20x4Raspberry pi lcd-shield20x4
Raspberry pi lcd-shield20x4
Iulius Bors
 
Raspberry pi bmp085blueedition
Raspberry pi bmp085blueeditionRaspberry pi bmp085blueedition
Raspberry pi bmp085blueeditionIulius Bors
 
Programare in prolog_pentru_inteligenta_artificiala
Programare in prolog_pentru_inteligenta_artificialaProgramare in prolog_pentru_inteligenta_artificiala
Programare in prolog_pentru_inteligenta_artificialaIulius Bors
 
Motoare pascupasarduinoeasydriver
Motoare pascupasarduinoeasydriverMotoare pascupasarduinoeasydriver
Motoare pascupasarduinoeasydriverIulius Bors
 
Curs gratuitarduino lectia15-seismografcuexcel
Curs gratuitarduino lectia15-seismografcuexcelCurs gratuitarduino lectia15-seismografcuexcel
Curs gratuitarduino lectia15-seismografcuexcelIulius Bors
 
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...Iulius Bors
 
Curs gratuitarduino lectia13-mousesitastatura
Curs gratuitarduino lectia13-mousesitastaturaCurs gratuitarduino lectia13-mousesitastatura
Curs gratuitarduino lectia13-mousesitastaturaIulius Bors
 
Curs gratuitarduino lectia12-conexiunewifi-googledocs
Curs gratuitarduino lectia12-conexiunewifi-googledocsCurs gratuitarduino lectia12-conexiunewifi-googledocs
Curs gratuitarduino lectia12-conexiunewifi-googledocsIulius Bors
 
Curs gratuitarduino lectia11-muzicacuarduino
Curs gratuitarduino lectia11-muzicacuarduinoCurs gratuitarduino lectia11-muzicacuarduino
Curs gratuitarduino lectia11-muzicacuarduinoIulius Bors
 
Curs gratuitarduino lectia3-proiectesimple-1
Curs gratuitarduino lectia3-proiectesimple-1Curs gratuitarduino lectia3-proiectesimple-1
Curs gratuitarduino lectia3-proiectesimple-1Iulius Bors
 
Cum instaleziapachesimysql peraspberrypi
Cum instaleziapachesimysql peraspberrypiCum instaleziapachesimysql peraspberrypi
Cum instaleziapachesimysql peraspberrypiIulius Bors
 
Asamblare statie meteo
Asamblare statie meteoAsamblare statie meteo
Asamblare statie meteoIulius Bors
 
Arduino yun arduino-wifi-ethernet-linux
Arduino yun arduino-wifi-ethernet-linuxArduino yun arduino-wifi-ethernet-linux
Arduino yun arduino-wifi-ethernet-linuxIulius Bors
 
Arduino yala electronicabazatapecodsecret
Arduino yala electronicabazatapecodsecretArduino yala electronicabazatapecodsecret
Arduino yala electronicabazatapecodsecretIulius Bors
 
Arduino wifi shield-drivermotoarel298
Arduino wifi shield-drivermotoarel298Arduino wifi shield-drivermotoarel298
Arduino wifi shield-drivermotoarel298Iulius Bors
 

More from Iulius Bors (18)

Raspberry pi wirelesshotspot
Raspberry pi wirelesshotspotRaspberry pi wirelesshotspot
Raspberry pi wirelesshotspot
 
Raspberry piuln2803
Raspberry piuln2803Raspberry piuln2803
Raspberry piuln2803
 
Raspberry pi timelapse
Raspberry pi timelapseRaspberry pi timelapse
Raspberry pi timelapse
 
Raspberry pi lcd-shield20x4
Raspberry pi lcd-shield20x4Raspberry pi lcd-shield20x4
Raspberry pi lcd-shield20x4
 
Raspberry pi bmp085blueedition
Raspberry pi bmp085blueeditionRaspberry pi bmp085blueedition
Raspberry pi bmp085blueedition
 
Programare in prolog_pentru_inteligenta_artificiala
Programare in prolog_pentru_inteligenta_artificialaProgramare in prolog_pentru_inteligenta_artificiala
Programare in prolog_pentru_inteligenta_artificiala
 
Motoare pascupasarduinoeasydriver
Motoare pascupasarduinoeasydriverMotoare pascupasarduinoeasydriver
Motoare pascupasarduinoeasydriver
 
Curs gratuitarduino lectia15-seismografcuexcel
Curs gratuitarduino lectia15-seismografcuexcelCurs gratuitarduino lectia15-seismografcuexcel
Curs gratuitarduino lectia15-seismografcuexcel
 
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...
 
Curs gratuitarduino lectia13-mousesitastatura
Curs gratuitarduino lectia13-mousesitastaturaCurs gratuitarduino lectia13-mousesitastatura
Curs gratuitarduino lectia13-mousesitastatura
 
Curs gratuitarduino lectia12-conexiunewifi-googledocs
Curs gratuitarduino lectia12-conexiunewifi-googledocsCurs gratuitarduino lectia12-conexiunewifi-googledocs
Curs gratuitarduino lectia12-conexiunewifi-googledocs
 
Curs gratuitarduino lectia11-muzicacuarduino
Curs gratuitarduino lectia11-muzicacuarduinoCurs gratuitarduino lectia11-muzicacuarduino
Curs gratuitarduino lectia11-muzicacuarduino
 
Curs gratuitarduino lectia3-proiectesimple-1
Curs gratuitarduino lectia3-proiectesimple-1Curs gratuitarduino lectia3-proiectesimple-1
Curs gratuitarduino lectia3-proiectesimple-1
 
Cum instaleziapachesimysql peraspberrypi
Cum instaleziapachesimysql peraspberrypiCum instaleziapachesimysql peraspberrypi
Cum instaleziapachesimysql peraspberrypi
 
Asamblare statie meteo
Asamblare statie meteoAsamblare statie meteo
Asamblare statie meteo
 
Arduino yun arduino-wifi-ethernet-linux
Arduino yun arduino-wifi-ethernet-linuxArduino yun arduino-wifi-ethernet-linux
Arduino yun arduino-wifi-ethernet-linux
 
Arduino yala electronicabazatapecodsecret
Arduino yala electronicabazatapecodsecretArduino yala electronicabazatapecodsecret
Arduino yala electronicabazatapecodsecret
 
Arduino wifi shield-drivermotoarel298
Arduino wifi shield-drivermotoarel298Arduino wifi shield-drivermotoarel298
Arduino wifi shield-drivermotoarel298
 

Arduino protocolul 1 wire

  • 1. Textul si imaginile din acest document sunt licentiate Attribution-NonCommercial-NoDerivs CC BY-NC-ND Codul sursa din acest document este licentiat Public-Domain Esti liber sa distribui acest document prin orice mijloace consideri (email, publicare pe website / blog, printare, sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul sursa din acest document poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici un fel de limitari.
  • 2. Arduino si protocolul One Wire Ce este protocolul One Wire ? Nu este decat un alt protocol care iti permite sa interconectezi diverse dispozitive periferice, in special senzori, direct cu placa Arduino. Spre exemplu, senzorul de temperatura DS18B20 este un senzor care face decat conversia temperaturii. Dar avantajul vine datorita interfetei cu care senzorul este dotat. Interfata identifica in mod unic senzorul cu care placa Arduino comunica. Asta inseamna ca nu esti limitat in a utiliza unul sau doi senzori. In schimb, poti folosi zeci de senzori conectati in retea, folosind ca si magistrala de date un singur fir. De aici vine si numele protocolului – One Wire. Cati senzori pot folosi ? Nu exista un numar clar deoarece trebuie sa iei in calcul foarte multe aspecte cum ar fi: distanta intre senzori, tipul de cablu folosit, sursa de alimentare, ecranarea cablului, parazitii externi s.a.m.d. Iti propun sa studiezi un ghid care te poate ajuta in proiectarea unei retele One Wire de dimensiuni mari: http://www.maximintegrated.com/app-notes/index.mvp/id/148 Senzorul de temperatura DS18B20. Iata cateva lucruri interesante despre acest senzor: • Conversia temperaturii o face la rezolutii mari cuprinsa intre 9 si 12 biti. • Are o functie interesanta de alarmare atunci cand temperatura citita depaseste limitele programate de utilizator. • Poti alimenta senzorul in modul parasite (parasite power). La ce te ajuta modul asta ? Afla mai jos. • Fiecare senzor are un cod unic pe 64 de biti. Asta inseamna ca poti interconecta foarte multi senzori, pe acelasi fir, sub forma unei retele. http://www.robofun.ro/forum
  • 3. • Poate masura temperaturii negative (pana la -55 de grade Celsius) dar si pozitive (pana la 125 de grade Celsius) cu o acuratete de ± 0.5 grade. • Poate fi alimentat cu tensiuni cuprinse intre 3 si 5.5V. Modul parasite power ? In mod normal, senzorul necesita 3 fire pentru o functionare corecta, respectiv 2 fire de alimentare si un fir One Wire. Un lucru interesant este ca senzorul iti permite sa renunti la un fir de alimentare si sa folosesti doar cele 2 fire ramase. Practic modul parasite power iti permite sa alimentezi, dar sa si „vorbesti“ cu senzorul folosind firul GND si firul One Wire. In acest caz, firul One Wire este folosit pentru 2 lucruri: alimentarea senzorului si comunicatia cu placa Arduino. Lucrul asta este foarte util atunci cand vrei pur si simplu sa scazi costurile pentru cel de-al treilea fir. Aceasta tehnologie se foloseste foarte des in industria producatoare de masini. Doar prin eliminarea firului de alimentare al senzorilor, o masina foloseste pana la 50 m de cablu, in timp ce o masina echipata cu senzori din generatia precedenta (care foloseste toate cele 3 fire) poate folosi pana la 600 m de cablu. Mai ales ca depanarea unei probleme se poate face mult mai repede si mult mai usor. Cat timp dureaza sa verifici continuitatea unui cablu de 50 m si a unuia de 600 ? Ce probleme apar oare in cazul cablului de 600 m ? (coliziuni pe magistrala, diafonie, s.a.m.d). Daca doresti sa studiezi in plus modul parasite power, acceseaza link-ul de mai jos: http://www.maximintegrated.com/app-notes/index.mvp/id/3754 Cum conectez senzorul de temperatura ? Iata un proiect care iti permite sa conectezi 3 senzori de temperatura si sa ii afisezi pe un ecran LCD, folosind o placa Arduino: http://www.instructables.com/id/Temperature-with-DS18B20/ Diverse proiecte folosind placa Raspberry PI: https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/temperature/ http://learn.adafruit.com/adafruits-raspberry-pi-lesson-11-ds18b20-temperature- sensing/hardware http://www.robofun.ro/forum
  • 4. Pentru a conecta senzorul la o placa Arduino vei avea nevoie de 3 fire de conexiune si un rezistor de 4.7K. Rezistorul se conecteaza intre pinul de date si pinul de alimentare VCC. Urmareste diagrama de mai jos: Cum comunica senzorul de temperatura cu placa Arduino ? Pentru ca placa Arduino sa comunice corect cu senzorul de temperatura trebuie indepliniti 3 pasi: 1. Initializarea – in primul rand, orice tranzactie sau orice schimb de date incepe cu o secventa de initializare. Secventa de initializare este alcatuita dintr-un semnal de reset transmis de placa Arduino (master) urmat de un semnal de prezenta transmis de senzori (slave-uri). Semnalul de prezenta este util pentru placa Arduino, pentru ca aceasta trebuie sa identifice prezenta senzorilor pe magistrala One Wire. 2. Comenzi ROM – imediat dupa ce placa Arduino a identificat senzorii de pe magistrala urmeaza un schimb de date folosind o serie de comenzi ROM. Spre exemplu, exista o comanda de cautare (Search ROM) prin care master-ul (placa Arduino) identifica numarul slave-urilor de pe magistrala si tipurile lor. Mai exista o comanda (Read ROM) care este utila doar daca pe magistrala se afla conectat un singur senzor. In felul asta, placa Arduino nu pierde timp util la cautarea altor senzori (pentru ca exista doar unul). O alta comanda se numeste Skip ROM ,atunci cand master-ul doreste sa se adreseze tuturor senzorilor. Acestea sunt doar cateva comenzi, deoarece exista mult mai multe, fiecare avand un mod mai complex de functionare. 3. Comenzi specifice senzorului de temperatura – imediat ce placa Arduino a identificat senzorii de temperatura prin comenzile ROM, urmeaza ca placa sa faca un schimb de date cu senzorul in sine. Lucrul asta se face printr-un set specific de comenzi. Spre exemplu, comanda Convert T prin care placa Arduino initializeaza o conversie de temperatura. Imediat dupa ce senzorul a primit si a executat comanda de conversie, pune toata informatia pe un spatiu intern de memorie format din 2 bytes. Urmeaza ca placa Arduino sa citeasca, prin alta comanda, spatiul http://www.robofun.ro/forum
  • 5. intern de memorie al senzorului. Aceasta comanda se numeste Read Scratchpad prin care master-ul cireste toata zona de memorie a senzorului. Exista si alte comenzi de citire si scriere, setare alarma, identificare senzori care functioneaza in modul parasite power s.a.m.d. Studiaza fisa de catalog a senzorului pentru a descoperi mult mai multe comenzi specifice senzorului: http://robofun.ro/docs/DS18B20.pdf http://www.robofun.ro/forum