Marian Postat Mai 30, 2014 Partajează Postat Mai 30, 2014 Depinde ce hex ai folosit la acea schema, adica depinde daca hexul ala a fost chiar cel scris pentru simularea din acea imagine postata de tine sau daca nu cumva ai gresit tu ceva la editare... Iata totul asa cum ai cerut, intai codul sursa: /* Volt-Amper metru @nmihaic * Tensiune afisata 0-20Vcc * Curent afisat 0-5Acc * Microcontroller PIC16F876A * Oscilator Cristal 4Mhz * LCD 2x16 * Autor Marian@Elforum *///Conexiuni LCDsbit LCD_RS at RB1_bit;sbit LCD_EN at RB3_bit;sbit LCD_D4 at RB4_bit;sbit LCD_D5 at RB5_bit;sbit LCD_D6 at RB6_bit;sbit LCD_D7 at RB7_bit;sbit LCD_RS_Direction at TRISB1_bit;sbit LCD_EN_Direction at TRISB3_bit;sbit LCD_D4_Direction at TRISB4_bit;sbit LCD_D5_Direction at TRISB5_bit;sbit LCD_D6_Direction at TRISB6_bit;sbit LCD_D7_Direction at TRISB7_bit;//Declarare variabileunsigned char ch, ADCx;unsigned int Tensiune, Curent;unsigned long V, A;//Functie principalavoid main() { INTCON = 0; TRISA = 0x03; Lcd_Init(); Lcd_Cmd(_LCD_CURSOR_OFF); Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,1,"VoltAmper-metru"); Lcd_Out(2,3,"***Mihai***"); Delay_ms(2000); Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,1,"Tensiune:"); Lcd_Out(2,1,"Curent:"); while (1) { //Achizitie ADC Tensiune = 0; Curent = 0; for (ADCx=0; ADCx<10; ADCx++) { Tensiune += ADC_Read(0); Curent += ADC_Read(1); Delay_ms(50); } //Tensiune Tensiune = Tensiune/ADCx; V = (long)Tensiune*200; V = V/1023; ch = V/100; if (ch==0) { Lcd_Chr(1,10,32); } else { Lcd_Chr(1,10,48+ch); } ch = (V/10) % 10; Lcd_Chr_CP(48+ch); Lcd_Chr_CP('.'); ch = (V/1) % 10; Lcd_Chr_CP(48+ch); LCD_Chr_CP('V'); Delay_ms(10); //Curent Curent = Curent/ADCx; A = (long)Curent*500; A = A/1023; ch = A/100; LCD_Chr(2,8,48+ch); Lcd_Chr_CP('.'); ch = (A/10) % 10; Lcd_Chr_CP(48+ch); ch = (A/1) % 10; Lcd_Chr_CP(48+ch); Lcd_Chr_CP('A'); Delay_ms(10); }} Arhiva continand hex-ul pentru acest cod: Volt-Ampermetru @nmihaic.rar 2 imagini cu simularea in proteus, prima ilustrand mesajul initial si ce-a de a 2-a afisajul asa cum arata in timpul functionarii ( click pe imagine pentru rezolutie full ): Si in final arhiva care contine proiectul in proteus, dezarhivezi, deschizi programul apoi incarci in el proiectul din folder-ul dezarhivat, apoi dublu click pe microcontroller si la "hex" incarci pe cel din arhiva de mai sus, deci proiectul in proteus: Proteus.rar Bafta. Link spre comentariu
Vizitator nmihaic Postat Iunie 2, 2014 Partajează Postat Iunie 2, 2014 multumesc mult am reusit pana la urma sa il simulez ce tes ruga daca ai putea introduce masurarea temperaturi si o linie de cod sa recunoasca apasarea unui buton sa faca ceva switch intre 2 imagini(aia gasesc eu intre ce si ce) de ex sa afiseze tensiune si curent si dua switch sa afiseze temepratura si putere, si daca trece de 30 grade sa activeze o iesire a picului pentru a porni un ventilator . multumesc multt. Link spre comentariu
Marian Postat Iunie 2, 2014 Partajează Postat Iunie 2, 2014 ce tes ruga daca ai putea introduce masurarea temperaturi si o linie de cod sa recunoasca apasarea unui buton sa faca ceva switch intre 2 imagini(aia gasesc eu intre ce si ce) de ex sa afiseze tensiune si curent si dua switch sa afiseze temepratura si putere, si daca trece de 30 grade sa activeze o iesire a picului pentru a porni un ventilator . multumesc multt. Iarta-ma dar nu inteleg prea bine ce vrei sa zici...sa stii ca s-au inventat semnele de punctuatie Scrie mai clar ce vrei sa obtii si vedem... Link spre comentariu
Vizitator nmihaic Postat Iunie 3, 2014 Partajează Postat Iunie 3, 2014 is mai zapacit stiu pai: as vrea sa integrez un senzor de temperatura, daca ma poate ajuta cineva cu ceva lini de cod cum sa citesc de pe l(nu prea am experiexta cu ele) am inteles ca sunt unele pe i2c sau pe 1 wire, care e cel mai usor de folosit si cel mai usor de gasit? dupa ce as integra un sezor de temperatura as scoate pe una din iesiri in momentul in care trece peste o anumita temperatura un 1 logic si cand scade sub alta temp sa treaca acea iesire pe 0 logic inapoi(pentru a integra un fan ceva) as folosi acest voltmetru pentru o sursa de laborator . o zi buna si multumesc. Link spre comentariu
Marian Postat Iunie 3, 2014 Partajează Postat Iunie 3, 2014 Cred ca te pot ajuta eu insa ideea este sa explici cat mai clar exact ce vrei. Acuma sa recapitulam: -Afisare tensiune ( deja am facut-o ); -Afisare curent ( si pe asta am rezolvat-o ); -Afisare temperatura ( de adaugat ) si comutarea unei iesiri a microcontroller-ului in functie de temperatura citita; -Afisare putere ( de adaugat ); 4 functii de afisat in total, cred ca pot fi ingramadite pe display-ul ala, eventual mai putine cifre dupa virgula, poate doar una singura, ( sper ca intelegi ce vreau sa zic ). Acuma ce senzor de temperatura vrei sa folosesti mai exact? asta numai tu poti alege, si ce praguri preferi pentru comutarea acelei iesiri a uC, adica la ce temperatura vrei ca pe o iesire sa apara 1 logic? Link spre comentariu
Vizitator nmihaic Postat Iunie 3, 2014 Partajează Postat Iunie 3, 2014 pai temperatura nu e ceva fix in cod pot modifica si eu sa zicem la 40 grade sa porneasca colerul iar sub 30 sa il opreasca, ca senzor as folosi DS18B20 sau lm 35 sau alte idei . Link spre comentariu
Mircea Postat Iunie 3, 2014 Partajează Postat Iunie 3, 2014 (editat) Zic si eu: daca vrei doar un switch termic, nu merita sa pui un 1wire sau I2C (nu ca nu i-ar prinde bine lui Marian exercitiul de integrare in softul existent). Acel DS l-ai putea folosi la un proiect care ar cere ceva precizie si informatie mai exacta. As folosi un NTC/PTC caruia ii cunosti curba de variatie si as face un divizor rezistiv, unde PIC citeste tensiunea divizata. Nu va fi foarte precis, dar va fi foarte ieftin. Rezistenta fixa din divizor o inlocuiesti cu un semipotentiometru (o singura tura) ca sa faci si reglaj hardware, compensand astfel toleranta resistentei fixe (5-10%). Acuma, va las pe voi sa va hotarati. Spor la munca! Editat Iunie 3, 2014 de thunderer Link spre comentariu
Marian Postat Iunie 3, 2014 Partajează Postat Iunie 3, 2014 Pai am inteles ca se doreste si un afisaj al temperaturii citite si in atare situatie precizia este destul de deficitara... personal in lipsa de senzor la sursa mea am folosit un simplu BD139 in conexiune dioda ( baza si colector unite ) ca si senzor de temperatura, l-am intercalat intr-un generator de curent constant si caderea de tensiune de pe jonctiunea BE a BD-ului comanda un amplificator inversor, suna poate complicat dar nu este de fapt... sugestia mi-a fost facuta de catre Smilex si am fost ( si inca sunt ) surprins de precizia sa. Revenind la ce s-a propus, LM35 are o variatie de 10mV per grad celsius, la o variatie de 100*C, iesirea variaza deci cu 1V, asta face necesara prezenta unui AO intre iesirea sa si intrarea uC, care in functie de variatia senzorului si gama de interes, sa varieze tensiunea intre 0-5V, configuratia ar fi destul de simpla avand in vedere simplitatea folosirii senzorului, daca se va decide ca se accepta ideea atunci pot veni si cu o schema ilustrativa si ulterior cu codul adaptat... dar asta maine sper eu ( sau de fapt azi mai corect spus... ). Link spre comentariu
Vizitator nmihaic Postat Iunie 4, 2014 Partajează Postat Iunie 4, 2014 Da voi folosi un LM35 am si comandat unu e foarte simplu de folosit am o mica intrebare(de noob stiu) de ce la amplificarea teniuni de pe shunt ai folosit 2 AO si nu unu? Multumesc ff mult pentru ideii si timpul acordat. Link spre comentariu
Marian Postat Iunie 4, 2014 Partajează Postat Iunie 4, 2014 Mi-as dori sa fii mai prompt in raspunsurile tale... adica sa lasi raspuns mai repede dupa ce postez eu, nu de alta dar uneori trec zile pana primesc un raspuns, astfel incat proiectul tau avanseaza greu, ca pana nu primesc feedback de la tine nu pot continua... Acestea fiind zise, la care schema te referi cand spui ca am folosit 2 AO pentru amplificarea tensiunii de pe shunt? Link spre comentariu
Vizitator nmihaic Postat Iunie 4, 2014 Partajează Postat Iunie 4, 2014 Uite ca cautam schema ta da nu mai merge linku îmi poți da schema ta finala? Link spre comentariu
Marian Postat Iunie 4, 2014 Partajează Postat Iunie 4, 2014 Care schema, care link? de la ce topic? Link spre comentariu
Vizitator nmihaic Postat Iunie 4, 2014 Partajează Postat Iunie 4, 2014 http://img33.imageshack.us/img33/1497/schema4.png uite ca am gasit-o Link spre comentariu
Marian Postat Iunie 4, 2014 Partajează Postat Iunie 4, 2014 Nu merge... mai intreb o data, de unde ai luat link-ul ala? de la ce topic? Link spre comentariu
Vizitator nmihaic Postat Iunie 4, 2014 Partajează Postat Iunie 4, 2014 http://www.elforum.info/topic/56878-voltampermetru-cu-pic-16f876/?p=817096 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