Inhoudsopgave:

555 Timer om signaal uit te zenden om Atmega328 te onderbreken - Ajarnpa
555 Timer om signaal uit te zenden om Atmega328 te onderbreken - Ajarnpa

Video: 555 Timer om signaal uit te zenden om Atmega328 te onderbreken - Ajarnpa

Video: 555 Timer om signaal uit te zenden om Atmega328 te onderbreken - Ajarnpa
Video: How to use Mosfet Optocoupled HW-532 to control up to 30V DC Motor Speed or load using Arduino 2024, Juli-
Anonim
555 Timer om signaal uit te zenden om Atmega328 te onderbreken
555 Timer om signaal uit te zenden om Atmega328 te onderbreken

Het belangrijkste doel van dit circuit is om energie te besparen. Dus ik ga het niet over Arduino hebben omdat het bord zelf onnodige stroomkosten heeft voor een eindproduct. Het is geweldig voor de ontwikkeling. Maar niet erg goed voor eindprojecten die op batterijen werken. Ik zal er een gebruiken voor mijn POC, maar om energie te besparen, geeft het gebruik van de Atmega328 standalone betere resultaten

Ik heb een weerstation (TOBE) gemaakt dat een paar 3,7 V-batterijen parallel kan opladen met behulp van een zonnepaneel. Mijn eerste versie ging heel goed, bedankt. Maar ik had een probleem. Het batterijverbruik was groter dan de oplaadsnelheid van het zonnepaneel. Ik ga hier niet in op cijfers. Maar na een tijdje merkte ik dat de batterijniveaus langzaam naar beneden gingen. Afgezien van het feit dat ik uit Canada kom en zon hier geen handelswaar is. Ik heb toen een bibliotheek gebruikt om de Atmega328 8 seconden in de sluimerstand te zetten (er zijn andere tijdframes, maar 8 seconden is hoger) en ga dan weer aan het werk. Het gebruik is zeer eenvoudig en het werkt zoals het hoort. Maar 8 seconden was niet genoeg voor mij.

Dit omdat mijn weerstation 3 componenten heeft.

  • Een realtime klok
  • Een DHT11
  • Oled-display

De klok wordt tot op de minuut nauwkeurig op het display weergegeven. De temperatuur en vochtigheid is niet iets dat we zo vaak moeten bijwerken. Dus ik moest iets bedenken waarmee ik het interval kon aanpassen en ik wilde ook wat plezier hebben om dat te doen.

Ik heb een proof of concept gebouwd om een 555-timer in astabiele modus te hebben om de Atmega328 te wekken met behulp van externe interrupts. Dat ga ik hier laten zien

Benodigdheden

Voor deze Instructable hebben we de volgende materialen nodig:

  • Een Arduino-bord
  • Een 555 timer-chip
  • 2 weerstanden (1M ohm, 220 ohm)
  • 1 gepolariseerde condensator (100uF)
  • Doorverbindingsdraden
  • DHT11-sensor
  • Breadboard

Stap 1: Eerst de lay-out

Eerst de lay-out
Eerst de lay-out

Laten we beginnen met de lay-out in het breadboard. Ik gebruik een DHT-sensor om u te wijzen op een andere manier om energie te besparen in uw projecten. Zoals u kunt zien, wordt het apparaat ingeschakeld door een Arduino-pin. Die gaat LAAG terwijl Arduino slaapt, waardoor nog meer energie wordt bespaard. U kunt dit doen met elk apparaat dat minder dan 40 mA nodig heeft om te werken.

Stap 2: Uitleg over het circuit

Ik ga niet te diep in op hoe de 555-timer werkt, want er zijn genoeg tutorials die de werking en de verschillende modi uitleggen. We gebruiken de 555-timer in een astabiele modus. Dat betekent dat het op een hoog niveau de condensator zal opladen tot 2/3 volt gedurende zoveel tijd als weerstand 1 bepaalt, en vervolgens ontlaadt gedurende zoveel als weerstanden 2 bepalen. We hebben eigenlijk niet veel tijd nodig in het ontladingssignaal, dus je kunt een 220 Ohm weerstand gebruiken. Als u een weerstandscombinatie van 1 M ohm en 220 ohm gebruikt, krijgt u een vertraging van ongeveer 1 minuut. Spelen met de eerste weerstand en de condensator geeft je verschillende tijden.

Stap 3: De schets

Stap 4: De schets uitleggen

Het doel van deze schets is om de vochtigheid en temperatuur te lezen en te gaan slapen totdat het een duwtje krijgt om wakker te worden en het opnieuw te lezen.

Daarvoor stel ik een interrupt-pin in als INPUT_PULLUP (meer over pullups in een andere aflevering). En elke keer dat het werk klaar is, zal er een onderbreking aan die speld hangen.

Zodra het interrupt-signaal IN komt, wordt de code opnieuw uitgevoerd en weer in slaapstand. Enzovoort.

Stap 5: enkele cijfers

Sommige nummers
Sommige nummers
Sommige nummers
Sommige nummers

Voor deze POC kon ik de maatregelen in ongeveer 3 seconden laten uitvoeren. Daarna zou het apparaat ongeveer 1 minuut slapen.

Met behulp van een 0,001 precisie AMP-meterapparaat om de stroom te meten, zag ik 0,023-0,029 AMP's voor de tijd dat het werkte (~ 3 seconden) en 0,000 tijdens het slapen (~ 1 minuut). Natuurlijk is het geen nulmeting omdat we de 555 hebben draaien. Maar ik ben niet ingegaan op Microamps. De besparing is in ieder geval aanzienlijk

Stap 6: Het schema en PCB

Het schema en PCB
Het schema en PCB
Het schema en PCB
Het schema en PCB
Het schema en PCB
Het schema en PCB

Voor degenen onder jullie die daarvoor de PCB willen bouwen, hier is de link ervoor:

Daar vindt u een ontwerp en een schema dat naar elke leverancier van PCB-fabricage kan worden gestuurd.

Er is ook een map met de naam print_version voor degenen onder u die graag thuis pcb-etsen, zoals ik.

Stap 7: Toepassingen

De toepassingen daarvan zijn enorm. Elke keer dat u een extern signaal met een bepaalde snelheid nodig heeft, kunt u dit circuit gebruiken. Ik gebruik om mijn weerstation in de slaapstand te zetten en een van de modules gaat samen met de Atmega328 slapen.

Voor effectieve resultaten bij het besparen van energie, moet u overwegen een stand-alone Atmega328 te hebben. Ik ben een bord aan het ontwerpen met deze mogelijkheid en binnenkort kan ik elk Atmega328-project in dit concept haken.

Als je goede ideeën hebt over het implementeren van oplossingen om energie te besparen, laat het me dan vooral weten, want ik ben echt dol op projecten met batterijen en zonnepanelen

Bedankt voor het lezen en ik zie je de volgende keer met meer projecten.

Aanbevolen: