Zdravim lidi. Prosim o pomoc a trpelivost se mnou, potrebuji neco rychle doresit a jsem v tom zacatecnik.
Mam program pro rizeni servomotoru a nacita taky hodnoty z potenciometru, to je vedlejsi, servomotor - pwm, vsecko nastaveno funkcni, cteni ad prevodniku z potenciometru, chapu, hotovo, ale potrebuji s necim pomoct, fakt si nevim rady.
Celou vec mam navrhnutou a vyresenou tak ze z procesoru bude odchazet urcita informace a to na ADC7. Jak mam v programu napsat, aby resenou, jiz prectenou digitalni hodnotu 0-1023 zapsal na ADC7. Cteni, admux, adcsra chapu, ale zapis? todle nevim. A jeste jedna otazka k tomuto, nejde odeslat hodnotu jako 0-5V?? jako DA prevod to nejde, ze? Resi se to nejak pres PWM? Hned za ADC7 mam napajeny operacni zesilovac ktery zvetsuje 2x, chtel bych aby mi z desky lezlo 0-10V. Pomozte mi s tim prosim!!
Programuju v C - AVRstudio, Procesor ATmega16, diky!
Fórum › Mikrokontroléry
ADC prevodnik/vystup !Prosim pomoc!
To Hanisss : atmely (resp 8b jednocipy jako takovy) moc casto DA prevodniky nemaji.. muzes si nejakej sehnat a zesilit vystup... muzes zneuzit i PWM a vhodnej vystupni filtr... nemuzes vygenerovat nejakou napetovou uroven jen tak
muzes si i udelat R-2R mustek - jako jednu z nejjednodussich variant DA prevodniku
Jj ja vim. Musi se to udela pres PWM. Ale nevim si s tim rady. Normalne co mam to ovladani serva, to jsem pochopil, mam tam fastPWM a dobre, ale v tomto se ztracim. Helfnete mi s tim pls. Koukal sem do toho pul dne a jsem z toho blby. Nemate nekdo nejaky podobny kod pro inspiraci nebo nejaky odkaz kde bych to pochopil nebo mozna zrovna to co potrebuji? Moc diky za pomoc!!!
// atmega88
DDRD = 0x68; // OC0A OC0B OC2B jako vystupy
DDRB = 0x08; // OC2A jako vystup
PORTD = 255; // na vstupech hodit pull upy (na vystupech log 1)
PORTB = 255;
PORTC = 255;
TCCR0A = 0xA3; // oba kanaly na fast PWM
TCCR0B = 0x01; // prescaler na 1 (zaroven je to i start T0)
TCCR2A = 0xA3; // oba kanaly na fast PWM
TCCR2B = 0x01; // prescaler na 1 (zaroven je to i start T2)
// nastaveni stridy pro jednotlive kanaly
OCR0A = 0;
OCR0B = 100;
OCR2A = 150;
OCR2B = 200;
Vesmes musis:
nastavit odpovidajici pin jako vystup,
nastavit rezim casovace pro ten pin,
nastartovat casovac,
nastavit hodnotu stridy ...
To AB: smysl to ma tom, ze mikroprocesor pouze odesila namerene hodnoty formou 0-10V a stejne tak prijima. A v zavislosti na tom ridi servomotor. Takze jde spis jen o nastaveni registru, zpracovani signalu atd. Zbytek a to podstatne je rizeno PLC.
To KIIV: diky, ted musim na chvili pryc, hned potom na to mrknu, dik! Kdyz se nekde ztratim, dam vedet.
To KIIV : Bohuzel jsem se tu dostal az pozde a nestihl jsem moc vykoumat. Jasne no, casovat TCCR1A a TCCR1B mam pouzit na ovladani toho serva. Na TCCR0 pisou ze umi taky pwm, tak to postuduju zitra, rano moudrejsi vecera, ale hlavni problem v tomto je, ze nemuzu pochopit jak ten signal pwm udela na vystupu 0-5V...kdyz tam nastavim nejaky druh pwm jak mam z toho udelat toto? Diky za trpelivost a hlavne za pomoc!! Zitra se tomu budu venovat tak snad na me bude mit nekdo tady cas:-)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Nastavení ATtiny85 jako AD převodník + výstup PWM — založil Kebule
Pomoc.... nějaká chybka prosím pomoc - více v podrobném popisu — založil tkstudent
C - prosim o pomoc — založil krajco
Prosím o pomoc — založil Jamarson23
Prosím pomoc! — založil Tomok
Moderátoři diskuze