Innholdsfortegnelse:

555 Timer to Emit Signal to Interrupt Atmega328: 7 Steps
555 Timer to Emit Signal to Interrupt Atmega328: 7 Steps

Video: 555 Timer to Emit Signal to Interrupt Atmega328: 7 Steps

Video: 555 Timer to Emit Signal to Interrupt Atmega328: 7 Steps
Video: Arduino Workshop - Chapter 5 - Interrupts 2024, November
Anonim
555 Timer for å avgi signal for å avbryte Atmega328
555 Timer for å avgi signal for å avbryte Atmega328

Hovedmålet med denne kretsen er å spare energi. Så jeg kommer ikke til å snakke om arduino fordi brettet selv har unødvendig kraftoverhead for et sluttprodukt. Det er flott for utvikling. Men, ikke veldig bra for sluttprosjekter som kjører på batterier. Jeg vil bruke en til min POC, men for å spare energi vil bruk av Atmega328 frittstående gi deg bedre resultater

Jeg laget en værstasjon (TOBE) som vil lade et par 3,7 V batteri parallelt ved hjelp av et solcellepanel. Min første versjon gikk veldig bra takk. Men jeg hadde et problem. Batteribruken var større enn ladehastigheten til solcellepanelet. Jeg går ikke inn på tall her. Men etter en stund merket jeg at batterinivåene sakte gikk ned. Bortsett fra det faktum at jeg er fra Canada og sol her ikke er en vare. Jeg brukte da et bibliotek for å sette Atmega328 i dvale i 8 sekunder (det er andre tidsrammer, men 8 sekunder er det høyere) og deretter komme tilbake til jobb. Bruken er veldig rett frem og det fungerer som det antas. Men 8 sekunder var ikke nok for meg.

Dette fordi værstasjonen min har 3 komponenter.

  • En sanntidsklokke
  • En DHT11
  • Oled -skjerm

Klokken vises i displayet i et minutts presisjon. Temperatur og fuktighet er ikke noe vi trenger å oppdatere så ofte. Så jeg trengte å finne på noe som tillot meg å justere intervallet, og jeg ville ha det gøy å gjøre det også.

Jeg bygde et bevis på konseptet for å ha en 555 timer i astabel modus for å vekke Atmega328 ved hjelp av eksterne avbrudd. Det er det jeg skal vise her

Rekvisita

For denne instruksjonsboken trenger vi følgende materialer:

  • Et Arduino -brett
  • En 555 timer -brikke
  • 2 motstander (1M ohm, 220 ohm)
  • 1 polarisert kondensator (100uF)
  • Jumper ledninger
  • DHT11 -sensor
  • Brødbrett

Trinn 1: Først oppsettet

Først oppsettet
Først oppsettet

La oss starte med oppsettet i brødbrettet. Jeg bruker en DHT -sensor for å påpeke en annen måte å spare energi på prosjektene dine. Som du kan se, er enheten slått på av en Arduino -pinne. Som vil gå LAVT mens Arduino sover, og spare enda mer energi. Du kan gjøre dette med alle enheter som krever mindre enn 40mA for å fungere.

Trinn 2: Forklaring om kretsen

Jeg vil ikke gå i dybden med hvordan 555 -timeren fungerer, da det er mange opplæringsprogrammer der rundt som forklarer driften og dens flere moduser. Vi bruker 555 -timeren i en astabel modus. Det betyr at på et høyt nivå vil den lade kondensatoren til 2/3 volt i så lang tid som motstand 1 bestemmer, enn å lade den ut så mye som motstander 2 bestemmer. Vi trenger faktisk ikke mye tid i utladningssignalet, så du kan bruke en 220 ohm motstand. Ved å bruke en 1M ohm, vil 220 ohm motstandskombinasjon gi deg en forsinkelse på rundt 1 minutt. Å leke med den første motstanden og kondensatoren vil gi deg forskjellige tider.

Trinn 3: Skissen

Trinn 4: Forklare skissen

Målet med denne skissen er å lese fuktighet og temperatur og sovne til det får et støt til å våkne og lese det igjen.

For det setter jeg en avbruddsnål som INPUT_PULLUP (mer om pullups i en annen episode). Og den pinnen vil ha en avbrudd knyttet til den hver gang arbeidet er fullført.

Når avbruddssignalet kommer IN, kjører koden igjen og går i dvale. Og så videre.

Trinn 5: Noen tall

Noen tall
Noen tall
Noen tall
Noen tall

For denne POC klarte jeg å gjøre tiltakene på rundt 3 sekunder. Deretter ville enheten sove i rundt 1 minutt.

Ved å bruke en 0,001 presis AMP-måleenhet for å måle strøm, så jeg 0,023-0,029 AMP for tiden det virket (~ 3 sekunder) og 0,000 mens jeg sov (~ 1 min). Selvfølgelig er det ikke en nulllesning, ettersom vi har 555 kjørende. Men jeg gikk ikke inn på Microamps. Sparingen er uansett betydelig

Trinn 6: Skjematisk og PCB

Skjematisk og PCB
Skjematisk og PCB
Skjematisk og PCB
Skjematisk og PCB
Skjematisk og PCB
Skjematisk og PCB

For de av dere som ønsker å bygge kretskortet for det, her er lenken for det:

Der finner du design og skjematisk oversikt som kan sendes til hvilken som helst PCB -leverandør.

Det er også en mappe som heter print_version for de av dere som liker å PCB etse din egen hjemme som meg.

Trinn 7: Søknader

Søknadene om det er enorme. Hver gang du trenger et eksternt signal som kommer i en bestemt hastighet, kan du bruke denne kretsen. Jeg bruker for å sette værstasjonen min til å sove, og en av modulene vil gå i dvale sammen med Atmega328.

For effektive resultater når du sparer energi, bør du vurdere å ha en frittstående Atmega328. Jeg designer et brett med denne muligheten, og snart vil jeg kunne koble ethvert Atmega328 -prosjekt til dette konseptet.

Hvis du har gode ideer til hvordan du kan implementere løsninger for å spare energi, vennligst gi beskjed til meg da jeg virkelig er interessert i prosjekter som løper inn i batterier og solcellepaneler

Takk for at du leser, og vi sees neste gang med flere prosjekter.

Anbefalt: