Vis bandau pasidaryti šiokį tokį Įtampos sekiklį.
Kur Atmega8 su savo vidiniu ADC nuskaitinėja įtampos reikšmes. Pasirinkau 8bit ADC, nes patogus duomenų siuntimas ir pakankama rezoliucija. Iš pradžių galovjau kad eis padaryti taip: į while(1) (amžiną ciklą) įdėsiu siuntimo funkciją, kuri siųs greičiau (daugiau) nei ADC pridarys konversijų. Atmegos pusėje taip galėtų būti, bet PC pusėje susidūriau su sunkumais. Iš pradžių galvojau darysiu su Delphi.. kaip ir visada, bet neradau kaip panaudoti event (įvikį) kai duomenys gaunami.. Seniau aš darydavau kad nuskaitytu COM port buferi kas tam tikrą laiko periodą. O dabar man reikėjo nuskaityti būtent tada, kai tik kas nors pasirodo COM porte. O jame pasirodydavo maždaug 2000 baitų per sekundę. Atrodo nieko čia greito. Pradėjau daryti PC programą su C# ant .NET platformos.. ten buvo ir tas minėtais event, kai duomenys gauti.
Taigi pamėginau su juo.. iš pradžių buvau padaręs su visu duomenų apdorojimu tuo pat metu.. Tai paleidus programą ir prisijungus prie COM porto, kokias 15 sekundžių atrodo, kad dirba gerai.. bet po jų prasideda lagas.. pasižiūrėjau kaip CPU į tai reguoja, o jis sau 100% pajėgumu darbuojasi.. Taigi pagalvojau gal čia dėl to, kad iškart apdoroju duomenis.. bet pasirodo galiu padaryti ir tuščią tą event’ą o CPU vistiek dirba 100% pajėgumu.. O jau buvau pradėjęs daryti ir pačio signalo šiokį tokį tyrima kaip pvz kiek užtrukna HIGH ir kiek LOW.. pagal juos buvo galima skaičiuoti dažnį.
Čia su Attiny2313 pasidariau stačiakampių impulsų generatoriuką. Ant viso porto turiu skirttingus dažnius. Pvz.: PD0 5ms HIGH 5ms LOW, PD1 10ms HIGH 10ms LOW. ir t.t.
o tai padaryti ypač lengva:) tereikia tik didinti per vienetą viso porto reikšmę pvz PORTD = x++; ir viskas
aišku reikia įterpti ir delay, kad nebūtų perdaug greitai
O taip atrodo mano HW:
Reikia iš kažkur surasti gerą pavyzdį kaip Windows Hyper Terminal darbuojasi su COM portu, nes jis tai tai gali dirbti betkokiu greičiu ir atvaziduoti tai ekrane, beveik nenaudodamas CPU
Nelabai kokia kokybė bet matosi, kad susitvarko puikiausiai.
Čia tos reikšmės kinta nes aš sukinėju potenciometrą ir gaunu reikšmes nuo 0 iki 255 tik čia atvazduojama ASCII simboliais..
O čia filmukas kaip tai atrodo mano programoje.. Aišku čia sulėtintas siuntimas, kad neužlagintu
Čia taip pat sukinėju potenciometrą, paskui truputį užkliūvu pirštais
ir galiausiai pajungiu prie attiny, kuriuo generauojami tie pulsai.. ten iš pradžių, kai pajungiu prie attiny vienu momentu matosi, kad yra žemesnė amplitudė. Čia dėl to, kad ant tos kojos buvo pajungtas LED, kad matyčiau ar darbuojasi prociukas
paskui pajungiau staciai prie kojos ir matosi 5v amplitudės.. Aišku čia jau nebeatitinka tikrose laiko tarpai tarp HIGH ir LOW nes pakeičiau siuntimo greitį.. Kodo nepastinsiu, nes dar nėra į ką ten pažiūrėti
ieškosiu kaip geriau sudraugaut su COM portu
Tai tam kartui bus tiek ..
Tags: C#, Įtampos sekiklis, Serial Port, Skopas


