Vizitator cpu54321 Postat Februarie 4, 2015 Partajează Postat Februarie 4, 2015 Buna seara Vreau sa pun in practica un proiect de incalzire inteligent In fiecare camera sa montez un termostat format dintr-un pic(16F876A) , display cu 7 seg/3 digit si doua butoane + / - termostatele vreu sa comunice cu un modul central care in functie de temperatura / interval orar sa comande electrovalve care inchid/deschid circuitele caloriferelor initial am vrut sa fac comunicare prin RS 232 dar din ce am studiat nu functioneaza decat intre doua module ma gandesc sa fac o retea I2C dar nu cunosc foarte bine protocolul Poate ma ajuta cineva cu vre-un exemplu, sfat, alt protocol de comunicare.................... Multumesc Link spre comentariu
Mircea Postat Februarie 5, 2015 Partajează Postat Februarie 5, 2015 Pai daca tot vrei sa tragi fire de ce nu folosesti decat un singur controller?De ce nu wireless (nRF24) la pret de nimic pe eBay? Vezi aici mai multe detalii: http://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01 Link spre comentariu
ventzel Postat Februarie 5, 2015 Partajează Postat Februarie 5, 2015 (editat) Ai putea folosi USART din PIC cu protocol RS485 la care gasesti documentatie suficienta. Alta solutie ar fi un protocol pe 9 bit cu detectie de adresa. Daca nu ai pachete de date mari de transferat ai putea folosi controllere cu CAN. Gasesti compilatoare cu suport pentru CAN, de exemplu de la Mikroe, si scapi aproape total de problemele de transmisie, receptie, collision detection, calcul crc si validare. http://www.mikroe.com/download/eng/documents/compilers/mikroc/pro/pic/help/can_library.htm Editat Februarie 5, 2015 de ventzel Link spre comentariu
puriu Postat Februarie 5, 2015 Partajează Postat Februarie 5, 2015 Merge si RS232 pe 8 biti, dar cu comunicatie bilaterala. MC master apeleaza pe rand MC slave, iar acestia dau raportul. Link spre comentariu
unuldinei Postat Februarie 5, 2015 Partajează Postat Februarie 5, 2015 (editat) Merge si fara raport daca trimiti un semnal de clock si identificare pentru fiecare in stringul emis , iar pic mic gigi stie ca la minutul 23 intra in actiune, pic mic ion intra la minutul 29 sau ca e doar pentru el comanda respectiva . Seful comanda , ailalti asculta adica ai sa folosesti module din alea un tx si restul rx . Modulele nu sunt imperecheate sau nu mi-au lasat impresia asta, si e cel mai ieftin pe partea asta .Totusi e mai bine sa ai un protocol de comunicare complet cu intreaba - raspunde are un grad de SIL(safety integrity level) acolo macar. primeste temperatura de la pic mic si alti parametrii... Adica stringul emis v[100]={I,D,C,L,O,C,K,1,2,:,3,0, P,I,C,M,I,C,G,I,G,I ,D,E,S,C,H,I,D,E, ,V,A,L,V,A,} Iar intre timp s-au ieftinit si astea wifi http://www.ebay.com/itm/ESP8266-Serial-WIFI-Wireless-Transceiver-Module-Send-Receive-LWIP-AP-STA-A-/201205524305?pt=LH_DefaultDomain_0&hash=item2ed8c8a751 Editat Februarie 5, 2015 de unuldinei Link spre comentariu
Mondan Postat Februarie 10, 2015 Partajează Postat Februarie 10, 2015 (editat) Dar nu exista astfel de montaje ? Cred ca se numesc robineti termostatati; http://www.fluidserv.ro/www-ro/produse/robineti-termostatati.php Eu unul as incepe prin reverse la chestiile astea. Prin ce sa comunice intre ele mai multe PIC-uri. sunt multe protocoale si poti defini si mai multe. De la serial asincron si nuai nevoie de cuart la PIC, la I2C,.... Ai putea sisenzorii de temperatura sai tragi prin fire, mai alea daca sunt senzori intagrati, cu ceva operatioane in aceeasi capsula. daca nu ai lucrat cu ele cel mai simplu e in C. Eu aveam MikroC (e gratis) si dateam parca:Soft_UART_Write("A"); //la emisie si while(1) { c = Soft_UART_Read(&error); //la receptie si c-ul lua valoarea c="A" avea el un flag care-ti arata ca ai date primite pe serial. Asincronul era bun pentru ca poti sa-l upgradezi ulterior cu module RX-TX. Mi-a mers si fara cuart, pe osclator intern, cei drept cu o rata mai mare de erori. Editat Februarie 10, 2015 de Mondan Link spre comentariu
ventzel Postat Februarie 10, 2015 Partajează Postat Februarie 10, 2015 Asincronul era bun pentru ca poti sa-l upgradezi ulterior cu module RX-TX. Mi-a mers si fara cuart, pe osclator intern, cei drept cu o rata mai mare de erori. Pentru module RF simple ii preferabil sa nu folosesti direct portu serial, adica encoding la semnal de tip zero-return. Unele module TX opresc transmisia pe radio dupa o pauza de cateva zeci de ms, deci daca ai multi biti de zero succesivi o sa-ti intre in stand-by si nu apuci sa transmiti tot mesaju.Tramsmisia radio nu incepe la primu bit 1 si poate aparea si de aici desincronizare. O rezolvare ar fi sa folosesti encoding Manchester si decodare soft http://www.slideshare.net/har406/05-signal-encoding Poti folosi protocol cu preambul si sincronizare si mesaju o sa ajunga teoretic tot avand in vedere ca fiecare bit ii codat ca front crescator sau descrescator, da ii preferabil sa ai si CRC. Un exemplu ar fi comunicatia la Keeloq de la Microchip: http://ww1.microchip.com/downloads/en/AppNotes/91045a.pdf Dezavantaju ii ca nu poti obtine viteza de transmisie foarte mare. Sau mai simplu, folosesti module asemanatoare cu ala prezentat de thunderer si scapi de multe probleme, plus ca ai comunicatie bidirectionala. Link spre comentariu
Mondan Postat Februarie 10, 2015 Partajează Postat Februarie 10, 2015 <Unele module TX opresc transmisia pe radio dupa o pauza de cateva zeci de ms> Zeci de ms e mult, dar totusi ca idee; se intampa asta si la "modulatia" AM ? Am vazut multe emisii in 433MHz facut astfel: un simplu oscilator cu cristal si modulatia era de fapt alimetarea lui. Un fel de ON/OFF da' brutal. Sau mai "delicat" modulatiaera ON/OFF pe rezistorul de polarizare in baza a tranzistoruli din oscilator. Link spre comentariu
ventzel Postat Februarie 10, 2015 Partajează Postat Februarie 10, 2015 (editat) La modulele descrise de tine nu ai probelema cu stand-by. Opresti/reduci consumu de curent prin oprirea alimentarii. Singura problema ar fi partea de inceput a transmisiei, mai exact daca folosesti RZ sau NRZ si primii biti din mesaj is zero sau daca incepi transmisia cu 1 byte 0xFF sa zicem si pierzi la inceputu receptiei 1 bit sau mai multi. Tot mesaju o sa aiba shift stanga cu numaru de biti pierduti. Plus ca in pauza de TX receptoru mai prinde alte semnale. Din cauza asta ziceam ca ii preferabil sa ai zona de preambul si sincronizare dupa care sa stii exact ca urmeaza datele. Editat Februarie 10, 2015 de ventzel Link spre comentariu
Postări Recomandate
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 contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum