ole Postat Decembrie 8, 2010 Autor Partajează Postat Decembrie 8, 2010 Ca sa faci conversia in celsius scazi 32 si imparti la 1.8. Vezi daca se potriveste temperatura afisata cu ce ar trebui sa masoare.Asa am facut. Initial am scazut si eu 32, dar imi iesea peste 40. Acum imi arata 23.62 gr. Celsius...dar de unde ai luat 1.8 pentru ca nu-mi dau seama acum ?1.8 e din modul cum se face conversia intre F si C. Exact exact nici eu nu stiu cum dar asta e relatia intre cele doua. Link spre comentariu
yo9hnf Postat Decembrie 8, 2010 Partajează Postat Decembrie 8, 2010 Cum pot avea doi senzori DS18B20 pusi pe 1wire diferenta de 1-2grade, pusi la cateiva centrimetrii unul de altul, pe birou ?! Link spre comentariu
yo9hnf Postat Decembrie 9, 2010 Partajează Postat Decembrie 9, 2010 1.8 e din modul cum se face conversia intre F si C. Exact exact nici eu nu stiu cum dar asta e relatia intre cele doua.Am gasit in linkul de mai jos si codul in C pentru conversia F la grade C, dar eu nu inteleg care-i ideea.http://computer.howstuffworks.com/c9.htm Link spre comentariu
nickrvl Postat Decembrie 9, 2010 Partajează Postat Decembrie 9, 2010 Poate ai vrut sa scrii "dim V as byte"Nu vrea, inainte am incercat toate metodele, byte, word, single etc, i-mi zice ca sint prea mari sau ceva de genul, o sa postez diseara eroarea, acum sint la servici. Link spre comentariu
yo9hnf Postat Decembrie 9, 2010 Partajează Postat Decembrie 9, 2010 Poate ai vrut sa scrii "dim V as byte" Nu vrea, inainte am incercat toate metodele, byte, word, single etc, i-mi zice ca sint prea mari sau ceva de genul, o sa postez diseara eroarea, acum sint la servici. Iti atasez un cod de la un termometru cu LM35 care la iesire da o tensiune direct proportionala cu temperatura masurata...parca 1mV/grad C (PARCA!!!) Config Adc = Single , Prescaler = Auto , Reference = Avcc 'config ADC Start Adc Dim W As Word , Perc As Word , Volt As Word , Volt_d As Byte , Channel As Byte , I As Byte , Cols As Byte , Cols_d As Byte Cls Cursor Off Do W = Getadc(1) Volt = W * 5 Volt_d = Volt Mod 10 Volt = Volt / 10 Locate 1 , 11 Lcd Volt ; "," ; Volt_d ; "C" Waitms 500 Loop End Link spre comentariu
nickrvl Postat Decembrie 9, 2010 Partajează Postat Decembrie 9, 2010 Iti atasez un cod de la un termometru cu LM35 care la iesire da o tensiune direct proportionala cu temperatura masurata...parca 1mV/grad C (PARCA!!!) Config Adc = Single , Prescaler = Auto , Reference = Avcc 'config ADCStart AdcDim W As Word , Perc As Word , Volt As Word , Volt_d As Byte , Channel As Byte , I As Byte , Cols As Byte , Cols_d As ByteClsCursor OffDo W = Getadc(1) Volt = W * 5 Volt_d = Volt Mod 10 Volt = Volt / 10 Locate 1 , 11 Lcd Volt ; "," ; Volt_d ; "C" Waitms 500 LoopEnd Acest cod e testat pe ATtiny13? cum am mai spus eu cu acesta am probleme.....sper ca are ADC pentru ca eu asa vad in Datasheet, nu ma insel nu? Link spre comentariu
yo9hnf Postat Decembrie 9, 2010 Partajează Postat Decembrie 9, 2010 @nickrvl Nu conteaza pentru ce uC este programul. Eu de ex l-am testat pe ATMega32 (pentru ca pe asa il am pe placa de dezvoltare). ATTiny13 are ADC0 pe pinul 1, ADC2 pe pin3, ADC3 pe pin2 . Deci practic cu acest uC poti masura 3 tensiuni. La W = Getadc(1), in paranteza ai ADCul care te intereseaza. De ex, daca vrei sa masori o tensiune pe pinul 1 (ex practic : sa pui un LM35 pe pinul 1), o sa ai W=Getadc(0), pentru ca pe pinul 1 ai ADC0. Link spre comentariu
nickrvl Postat Decembrie 9, 2010 Partajează Postat Decembrie 9, 2010 @nickrvl Nu conteaza pentru ce uC este programul. Eu de ex l-am testat pe ATMega32 (pentru ca pe asa il am pe placa de dezvoltare). ATTiny13 are ADC0 pe pinul 1, ADC2 pe pin3, ADC3 pe pin2 . Deci practic cu acest uC poti masura 3 tensiuni. La W = Getadc(1), in paranteza ai ADCul care te intereseaza. De ex, daca vrei sa masori o tensiune pe pinul 1 (ex practic : sa pui un LM35 pe pinul 1), o sa ai W=Getadc(0), pentru ca pe pinul 1 ai ADC0. Intreb daca softul e "compatibil" cu ATtiny13 pentru respectiva eroare (in Bascom) numai la acest tip de Mc i-mi da, in rest Atmega8, ATtiny2313 (ce am incercat eu) nu e problema. Inca odata, e vorba strict de Bascom, acolo i-mi da eroare, atunci cind vreau sa compilez softul.Am incercat multe softuri cu citire ADC cu atmega8 si attiny2313 si nu a fost problema, numai la acest 13 i-mi face figuri, incercati si voi softul in Bascom in varianta mea dar cu ATtiny13 ca Mc si atunci poate "vorbim aceasi limba". Link spre comentariu
nickrvl Postat Decembrie 9, 2010 Partajează Postat Decembrie 9, 2010 Am reusit, cum banuiam problema era de la attiny13, fiind mic la declararea variabilelor nu accepta decit "bit" iar acest bit nu poate lua decit valoarea 1 sau 0 si de aici toate erorile, una peste alta cu toate ca are ADC nu poate sa fie un voltmetru de exemplu, poate doar sa verifice daca are sau nu tensiune la pin. Acesta e codul: $regfile = "ATtiny13.DAT"$crystal = 1000000Config Portb.1 = OutputPortb.1 = 1Dim V As BitConfig Adc = Single , Prescaler = AutoStart AdcDoIf Getadc(0) = 1 Then Portb.1 = 1If Getadc(0) = 0 Then Portb.1 = 0LoopEnd Iar asta e simularea in Proteus: [attachment=0]13.jpg[/attachment] Link spre comentariu
Stefan Postat Decembrie 9, 2010 Partajează Postat Decembrie 9, 2010 atunci de ca se mai numeste ADC? asta face orice alt pin.nu ma pricep la avr-uri dar sigur ADC-ul ala nu e denumit degeaba asa (nu am timp sa ma uit acum pe catalog) Link spre comentariu
nickrvl Postat Decembrie 9, 2010 Partajează Postat Decembrie 9, 2010 atunci de ca se mai numeste ADC? asta face orice alt pin.nu ma pricep la avr-uri dar sigur ADC-ul ala nu e denumit degeaba asa (nu am timp sa ma uit acum pe catalog)Posibil sa bat cimpii, poate face cineva lumina in acest caz. Link spre comentariu
vasile eugen Postat Decembrie 9, 2010 Partajează Postat Decembrie 9, 2010 nu vreau sa spun o boacana ,dar ADC se foloseste pentru senzori analogi,cum este LM35 sau termistor caci cu ADC se masoara o tensiune .Iar DS 1820 are iesire digitala. Link spre comentariu
vasile eugen Postat Decembrie 9, 2010 Partajează Postat Decembrie 9, 2010 link cu DS1820 http://www.mcselec.com/index.php?option ... &Itemid=57 http://www.grote.net/bascom/msg13058.html http://avrprojects.info/avr-projects/ds ... indicator/ http://www.mikrocontroller.net/topic/144029 Link spre comentariu
nana Postat Decembrie 10, 2010 Partajează Postat Decembrie 10, 2010 Am reusit, cum banuiam problema era de la attiny13, fiind mic la declararea variabilelor nu accepta decit "bit" iar acest bit nu poate lua decit valoarea 1 sau 0 si de aici toate erorile, una peste alta cu toate ca are ADC nu poate sa fie un voltmetru de exemplu, poate doar sa verifice daca are sau nu tensiune la pin.Acesta e codul: $regfile = "ATtiny13.DAT"$crystal = 1000000Config Portb.1 = OutputPortb.1 = 1Dim V As BitConfig Adc = Single , Prescaler = AutoStart AdcDoIf Getadc(0) = 1 Then Portb.1 = 1If Getadc(0) = 0 Then Portb.1 = 0LoopEndIar asta e simularea in Proteus:[attachment=0]13.jpg[/attachment]problema este din cauza mai mult ca sigur a optrimizari si declarari variabilelor folosite. Acum nu stiu daca tu poti sa selectezi pe cati biti sa iti aloci o variabila folosita in ram sau constantele in memoria flash, in bascom asta. de aia daca vrei sa faci cod cat mai mic si nu ai chef de asm. pune mana pe C... nu degeaba se alege de catre profesionisti si cei care fac cod pentru aplicati complexe acest limbaj de programare !!! Eu am facut vre-o cateva proiecte cu ADC pe un tinny13 singura chestie de care m-am lovit este ca nu prea poti de exemplu sa faci calcule de conversie ADC tensiune in virgula mobila pentru ca nu ai destul spatiu si a trebuit sa stabilesc niste praguri direct :(. Acum depinde ce aplicatii vrei sa faci cu el dar acest controler este unul foarte limitat din pdv al dimensiuni codului 1k flash si 512biti ram, gandestete ca un int are 32 de biti deci daca declari 16 var int deja ai ocupat tot ramul. Link spre comentariu
yo6pir Postat Decembrie 10, 2010 Partajează Postat Decembrie 10, 2010 ... pune mana pe C... nu degeaba se alege de catre profesionisti si cei care fac cod pentru aplicati complexe acest limbaj de programare !!!@nana tu ai ceva probleme cand postezi la sectiunea asta. Cred ca nu ai citit titlul acestui post. Ti-l reamiuntesc: PROBLEME DE INCEPATORITu crezi ca toata lumea e asa desteapta ca tine sa faca programe complexe si in limbaje evoluate pentru profesionisti? Daca nu poti sa dai o solutie reala la problema omului ar trebui sa te abtii de la raspunsuri de genul: pune mana si citeste datasheet-ul, sau pune mana pe C, sau alte chestii de genul asta.Cel putin aici pe acest topic. Poate ca ai gresit sectiunea, si ar trebui sa postezi raspunsul la PROBLEME DE PROFESIONISTI. Fara suparare dar chestiile astea ar trebui cumva reglementate de catre moderator! 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