www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

ATMega8 termometer - utripanje zaslona

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
jozzze2000
Član
Član



Pridružen-a: Pet 25 Nov 2011 8:36
Prispevkov: 167
Aktiv.: 1.11
Kraj: Novo mesto

PrispevekObjavljeno: Čet Sep 19, 2013 1:53 pm    Naslov sporočila:  ATMega8 termometer - utripanje zaslona Odgovori s citatom

Naredil sem termometer po tem načrtu:
http://www.instructables.com/id/DIY-Digital-Thermometer/?ALLSTEPS

Vezje sem sestavil in sprogramiral ATMega8. Načeloma sem zadovoljen, moti pa me, da ko vzorči (preračunava novo vrednost) za kratek čas ugasne display

Se da to na kak način odpraviti?

Hvala, Jože
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Obelix
Član
Član



Pridružen-a: Pon 19 Maj 2008 13:59
Prispevkov: 1862
Aktiv.: 9.64
Kraj: Maribor

PrispevekObjavljeno: Čet Sep 19, 2013 2:02 pm    Naslov sporočila:   Odgovori s citatom

Ena možnost je z uporabo "BCD to 7 segment" dekoderja. Na primer 74HCT4511.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
jozzze2000
Član
Član



Pridružen-a: Pet 25 Nov 2011 8:36
Prispevkov: 167
Aktiv.: 1.11
Kraj: Novo mesto

PrispevekObjavljeno: Čet Sep 19, 2013 2:19 pm    Naslov sporočila:   Odgovori s citatom

Recimo takole?

http://www.mikrocontroller.net/attachment/18818/Schaltung.JPG

Kaj naj bi pa s tem pridobil, namreč če definiram (torej ne merim) vrednost, display ne ugasne?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Obelix
Član
Član



Pridružen-a: Pon 19 Maj 2008 13:59
Prispevkov: 1862
Aktiv.: 9.64
Kraj: Maribor

PrispevekObjavljeno: Čet Sep 19, 2013 2:33 pm    Naslov sporočila:   Odgovori s citatom

Malce drugače. Vsak 7-segmentni ima svoj 4511. Atmega pa vpisuje vrednosti na vhode ABCD in z enable/store izbira v kateri diplay bo vpisoval. Potem pa lahko Atmega računa in pretvarja, vrednost na displayu se ne bo spremenila do ponovnega vpisa.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Čet Sep 19, 2013 2:40 pm    Naslov sporočila:   Odgovori s citatom

Utripanje se ne bi smelo pojaviti niti pri štirih 7-segmentnih prikazovalnikih, kaj šele pri dveh.

Težava je torej povsem programska. Glede na to, da imaš tudi .c datoteko, se raje loti predelave programa, vezje pa zaenkrat pusti pri miru.

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
piroman
Član
Član



Pridružen-a: Čet 23 Okt 2003 12:06
Prispevkov: 2707
Aktiv.: 12.19
Kraj: Ljubljana

PrispevekObjavljeno: Čet Sep 19, 2013 3:48 pm    Naslov sporočila:   Odgovori s citatom

Avtor programa zganja precej matematike pa še vse se vrti v glavni zanki. Ni čudno, da uboga 8 bitna žival pri tem počepne Wink
_________________
One shouldn’t work on semiconductors, that is a filthy mess; who knows if they really exist!
Wolfgang Pauli, 1931
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
jozzze2000
Član
Član



Pridružen-a: Pet 25 Nov 2011 8:36
Prispevkov: 167
Aktiv.: 1.11
Kraj: Novo mesto

PrispevekObjavljeno: Čet Sep 19, 2013 4:28 pm    Naslov sporočila:   Odgovori s citatom

Sem probal postavit enostavno enačbo, ki sešteje dve števili, pa je vseeno utripalo.

Če se vam zdi, da je pomankljivost v kodi, lahko predlagate kakšno rešitev?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Čet Sep 19, 2013 5:47 pm    Naslov sporočila:   Odgovori s citatom

Hmm, ... Vezje nima tranzistorjev za vklop prikazovalnikov. d'oh! Svetilnost bo torej odvisna od števila trenutno vklopljenih segmentov. Dobro bi bilo dodati dva PNP tranzistorja, saj je prikazovalnik s skupno anodo.
MCU---[470ohm]---|<|---BAZApnp (samo takrat bo segment svetil, ko bo portD pin na 0)

Pogojno lahko tudi pavze prilagodiš številu prižganih segmentov. Rabiš eno še tabelico števil, ki vrne StevecPavza, glede na stanje displej[], nato pa v prazno zavrti eno for zanko s StevecPavza++ in 100mikrosekundno pavzo v njej.
Z n-mikrosekundnimi pavzami poskrbiš, da meritev+izračun traja približno enako dolgo kot pavza za prikaz cifre. Če lahko simuliraš trajanje prehoda skozi posamezne dele programa, boš lahko pavze zelo natančno določil.

V vsakem primeru se začni učiti uporabljati prekinitve.

Glede programa pa malo uredi sintakso:
Koda:
while(1)

 if stevec == 0
  sprozi ADC meritev
  izracuna vse
  pavza 2ms // oziroma (5ms - konstanta + for)
 else
  pavza 5ms (ali nastavljiva 5ms + for zanka)
 endif

  portB = portB & 0xF9 // 1111 1001

 if (stevec & 0x01)==0 // liho da 0, sodo da 1
  portD = prva cifra
  portB = portB logicniALI 0x02
 else
  portD = druga cifra
  portB = portB logicniALI 0x04
 endif

  stevec = stevec + 1 // stevec++
konec while

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2066
Aktiv.: 9.30
Kraj: Ljubljana

PrispevekObjavljeno: Čet Sep 19, 2013 6:19 pm    Naslov sporočila:   Odgovori s citatom

jozzze2000 je napisal/a:
Če se vam zdi, da je pomankljivost v kodi, lahko predlagate kakšno rešitev?

Za osveževanje display-ev zadolži prekinitev timerja.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
.
Član
Član



Pridružen-a: Pon 23 Avg 2004 16:16
Prispevkov: 16777190
Aktiv.: 75551.67

PrispevekObjavljeno: Pon Sep 23, 2013 11:37 am    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
jozzze2000
Član
Član



Pridružen-a: Pet 25 Nov 2011 8:36
Prispevkov: 167
Aktiv.: 1.11
Kraj: Novo mesto

PrispevekObjavljeno: Tor Sep 24, 2013 10:52 am    Naslov sporočila:   Odgovori s citatom

Je uspelo s prekinitvijo Dancing
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Mare_m
Član
Član



Pridružen-a: Ned 31 Jul 2011 16:22
Prispevkov: 97
Aktiv.: 0.63
Kraj: JN75PV

PrispevekObjavljeno: Tor Apr 08, 2014 6:43 am    Naslov sporočila:  Mega 8 termostat Odgovori s citatom

Zdravo

Rad bi si sestavil termostat z mega8 in ds1820, z nastavljanjanjem temperature, LED izvedba. Ima kdo kaksen dober nacrt s programom.
Sem ze pregledal po net-u, veloko verzij a kompleta ne najdem.

http://www.instructables.com/id/DIY-Digital-Thermometer/?ALLSTEPS

Termomoter bi ustrezal, vendar potrebujem nastavitev in izhod za rele.

Pozdrav, Mare
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Nikolaj
Neznanec
Neznanec



Pridružen-a: Pon 14 Okt 2013 10:36
Prispevkov: 7
Aktiv.: 0.05
Kraj: Škofljica

PrispevekObjavljeno: Tor Jun 10, 2014 2:14 pm    Naslov sporočila:   Odgovori s citatom

Za nastavljanje točke vklopa potrebuješ še en ADC vhod na mega8 na katerega lahko priklopiš potenciometer. Z njim uravnavaš napetost, ki jo bo prebral ADC.

Za rele boš potreboval še en izhod na mega8 s katerim boš preko tranzistorja krmilil rele - nekaj v stilu
http://atmega32-avr.com/relay-timer-with-atmega8-avr-mcu/

V kodi potrebuješ še logiko, ki bo glede na vrednost temperature in vrednost nastavljene mejne vrednosti vklopil/izklopil izhod na rele. Primerjaš lahko vrednosti izmerjenih napetosti "voltage_on_bit" prvega ADC-ja (ki je že vpisan v kodi) in tega novega, ki ga boš dodal.

LP, J

_________________
Strpnost in poštenost!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jaka57
Moderator
Moderator



Pridružen-a: Ned 12 Dec 2004 21:47
Prispevkov: 5766
Aktiv.: 25.97
Kraj: Grosuplje

PrispevekObjavljeno: Tor Jun 10, 2014 2:31 pm    Naslov sporočila:   Odgovori s citatom

@Mare_m: eden naših članov (@rkulcar2) je to naredil za krmiljenje obtočne črpalke sončnih kolektorjev, sicer na Arduino platki, toda sam program ni nič drugačen. pobrskaj malo po forumu, pod Arduino temami, končni izdelek pa lahko vidiš v temi, kaj trenutno počnem (ne vem točno ali za maj ali april).
_________________
Lp, Jaka
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group