Archiv der Kategorie: Elektronik

Wochenend-Projekt: Tasmota Firmware auf eine Gosund Steckdose

Ursprünglich wollte ich die Tasmota Firmware mit dem Arduino aufspielen. Leider habe ich es mit der neuen Arduino IDE nicht hin bekommen. Mit Arduino wäre es natürlich super gewesen, denn dann hätte ich mir keine FTDI232 Schnittstelle besorgen müssen. Vorne … Weiterlesen

Veröffentlicht unter Allgemein, Elektronik, Microcontroller, Wochenend Projekte | Schreib einen Kommentar

Wochenend-Projekt: Einschlaflicht v01.02

Ich dachte mir es wäre doch toll, wenn man ein kleine Lampe hat, die solange leuchtet bis man eingeschlafen ist und dann ausgeht. Die Lampe an der ich baue Leucht soll nach dem einschalten (Wenn man den Knopf drückt) etwa … Weiterlesen

Veröffentlicht unter Elektronik, Microcontroller, Wochenend Projekte | Schreib einen Kommentar

Wochenend-Projekt: elektronischer Würfel v1.06

Die Firmware vom Würfel habe ich optimiert. Nun fällt er in den Schlafmodus wenn er nicht gebraucht wird und verbraucht dann nur noch 0.06 µA. Nach dem Tastendruck wacht er wieder auf und wird vom Watchdog resetet. [pastacode lang=“c“ manual=“%2F*%0A%20*%20Wuerfel_V01_06.c%0A%20*%0A%20*%20Created%3A%2015.04.2018%2020%3A57%3A00%0A%20*%20Author%20%3A%20Bernd%0A%20*%0A%20*%0A%20*%20Chip%20type%3A%20Attiny13a%0A%20*%20Clock%20frequency%3A%20SUT_CKSEL%20auf%20INTRCoSC_128KHZ_14CK_64MS%20(128kHz%20%2F%208%20%3D%2016kHz)%0A%20*%0A%20*%09%09%09%09%09%09%09%09%09%09%09%09%09%20%20%2B——–%2B%0A%20*%20%20%20%20%20%20%20%20%5B%20rest%20(leer)%09%09%09%09%09%09%09(PB5)%20%7C1*%20%20%20%20%208%7C%20(VCC)%20%20Power%09%09%09%09%09%09%09%09%5D%0A%20*%20%20%20%20%20%20%20%20%5B%20Taster%09%09%09%09%09%09%09%09(PB3)%20%7C2%20%20%20%20%20%207%7C%20(PB2)%20%20LEDs%20-%20links%20unten%20%7C%20rechts%20oben%09%5D%0A%20*%20%20%20%20%20%20%20%20%5B%20LEDs%20-%20rechts%20unten%20%7C%20links%20oben%09(PB4)%20%7C3%20%20%20%20%20%206%7C%20(PB1)%20%20LEDs%20-%20mitte%20links%20%7C%20mitte%20rechts%09%5D%0A%20*%20%20%20%20%20%20%20%20%5B%20Ground%09%09%09%09%09%09%09%09(GND)%20%7C4%20%20%20%20%20%205%7C%20(PB0)%20%20LED1%09%09%09%09%09%09%09%09%5D%0A%20*%09%09%09%09%09%09%09%09%09%09%09%09%09%20%20%2B——–%2B%0A%20*%0A%20*%2F%20%0A%0A%23define%20F_CPU%2012800UL%20%2F%2FDalay%20anpassen%20wegen%20Fusebit%0A%2F%2F%23define%20F_CPU%20960000UL%20%2F%2FDalay%20anpassen%20wegen%20Fusebit%0A%0A%23define%20LED1_PIN%20%20%20%20%20%20%20%20PB0%0A%23define%20Taster%09%09%09PB3%0A%23define%20DELAY_MAX%20%20%20%20%20%20%20(512)%0A%23define%20DELAY_MIN%20%20%20%20%20%20%20(0)%0A%0A%23include%20%3Cavr%2Fwdt.h%3E%0A%23include%20%3Cstdint.h%3E%20%0A%23include%20%3Cutil%2Fdelay.h%3E%20%0A%23include%20%3Cavr%2Fio.h%3E%20%0A%23include%20%3Cavr%2Finterrupt.h%3E%20%0A%23include%20%3Cavr%2Fpower.h%3E%20%0A%23include%20%3Cavr%2Fsleep.h%3E%0A%0Aint%20Augenanzahl%20%3D%200%3B%20%2F%2F%20einfacher%20Z%C3%A4hler%20f%C3%BCr%20W%C3%BCrfel%20Augenanzahl%0Auint16_t%20min%2C%20sek%3B%0A%0Aint%20StartStopAni(int%20AnzahlBlinken)%3B%0A%0A%2F%2F%20Leere%20Interrupt-Routine%0AISR(PCINT0_vect)%0A%7B%0A%7D%0A%0A%09%0A%0Aint%20main(void)%0A%7B%0A%0A%09%2F%2FWatchdog%20ausschalten!%0A%09MCUSR%20%26%3D%20~(1%3C%3CWDRF)%3B%0A%09WDTCR%20%7C%3D%20(1%3C%3CWDCE)%20%7C%20(1%3C%3CWDE)%3B%0A%09WDTCR%20%3D%200×00%3B%0A%09%09%0A%09DDRB%20%3D((1%3C%3CLED1_PIN)%20%7C%20(1%3C%3CPB1)%20%7C%20(1%3C%3CPB2)%20%7C%20(1%3C%3CPB4))%3B%20%2F%2F%20Ports%20auf%20Ausgang%0A%09DDRB%3D%20~(1%3C%3CTaster)%3B%09%09%09%09%09%09%09%09%09%09%2F%2F%20Port%20auf%20Eingang%0A%09PORTB%20%7C%3D%20(1%3C%3CTaster)%3B%09%09%09%09%09%09%09%09%09%2F%2F%20Pullup%20f%C3%BCr%20Eingang%0A%09%0A%09StartStopAni(30)%3B%0A%09%0A%09PORTB%20%3D0b00001000%3B%0A%09%0A%09while%20(1)%20%2F%2F%20Endlos%20Schleife%0A%09%7B%20%0A%09%09for%20(min%3D10%3B%20min%3E%3D1%3B%20min–)%20%20%2F%2FSchleifen-konstruckt%2C%20wegen%20Zeit%20bis%20zum%20einschlafen%0A%09%09%7B%0A%09%09%09for%20(sek%3D1500%3B%20sek%3E%3D1%3B%20sek–)%0A%09%09%09%7B%0A%09%09%09%09_delay_ms(50)%3B%0A%09%09%09%09%09%09%09%09%0A%09%09%09%09if%20(!(PINB%20%26%20(1%3C%3CTaster)))%09%2F%2F%20Abfrage%20ob%20Switch%20gedr%C3%BCckt%0A%09%09%09%09%7B%0A%09%09%09%09%09%2F%2F%20Schleifenwerte%20nach%20bet%C3%A4tigen%20der%20Taste%20wieder%20hoch%20setzen%0A%09%09%09%09%09min%3D10%3B%20%0A%09%09%09%09%09sek%3D1500%3B%20%0A%09%09%09%09%09%0A%09%09%09%09%09PORTB%20%3D0b00001000%3B%0A%09%09%09%09%09_delay_ms(500)%3B%09%20%2F%2F%20kurze%20Pause%20-%20alle%20LEDs%20kurz%20aus%2C%20damit%20man%20sieht%20der%20W%C3%BCrfel%20w%C3%BCrfelt.%0A%09%09%09%09%09%0A%09%09%09%09%09switch(Augenanzahl)%09%2F%2F%20i%20Auswerten%0A%09%09%09%09%09%7B%0A%09%09%09%09%09%09case%200%3A%0A%09%09%09%09%09%09%7B%0A%09%09%09%09%09%09%09%2F%2F%20Zahl%201%20–%3E%20i%3D0%0A%09%09%09%09%09%09%09PORTB%20%3D0b00000001%3B%0A%09%09%09%09%09%09%09break%3B%0A%09%09%09%09%09%09%7D%0A%09%09%09%09%09%09case%201%3A%0A%09%09%09%09%09%09%7B%0A%09%09%09%09%09%09%09%2F%2F%20Zahl%202%20–%3E%20i%3D1%0A%09%09%09%09%09%09%09PORTB%20%3D0b00000100%3B%0A%09%09%09%09%09%09%09break%3B%0A%09%09%09%09%09%09%7D%0A%09%09%09%09%09%09case%202%3A%0A%09%09%09%09%09%09%7B%0A%09%09%09%09%09%09%09%2F%2F%20Zahl%203%20–%3E%20i%3D2%0A%09%09%09%09%09%09%09PORTB%20%3D0b00000101%3B%0A%09%09%09%09%09%09%09break%3B%0A%09%09%09%09%09%09%7D%0A%09%09%09%09%09%09case%203%3A%0A%09%09%09%09%09%09%7B%0A%09%09%09%09%09%09%09%2F%2F%20Zahl%204%20–%3E%20i%3D3%0A%09%09%09%09%09%09%09PORTB%20%3D0b00010100%3B%0A%09%09%09%09%09%09%09break%3B%0A%09%09%09%09%09%09%7D%0A%09%09%09%09%09%09case%204%3A%0A%09%09%09%09%09%09%7B%0A%09%09%09%09%09%09%09%2F%2F%20Zahl%205%20–%3E%20i%3D4%0A%09%09%09%09%09%09%09PORTB%20%3D0b00010101%3B%0A%09%09%09%09%09%09%09break%3B%0A%09%09%09%09%09%09%7D%0A%09%09%09%09%09%09case%205%3A%0A%09%09%09%09%09%09%7B%0A%09%09%09%09%09%09%09%2F%2FZahl%206%20–%3E%20i%3D5%0A%09%09%09%09%09%09%09PORTB%20%3D0b00010110%3B%0A%09%09%09%09%09%09%09break%3B%0A%09%09%09%09%09%09%7D%0A%09%09%09%09%09%7D%0A%09%09%09%09%09%0A%09%09%09%09%09%2F%2F%20Port%20wieder%20auf%20Eingang%20setzen%20(Pullup)%0A%09%09%09%09%20%20%20%20PORTB%20%7C%3D%20(1%3C%3CTaster)%3B%0A%0A%09%09%09%09%7D%0A%09%09%09%09Augenanzahl%2B%2B%3B%09%2F%2F%20bei%20jedem%20Schleifendurchlauf%20i%20Erh%C3%B6hen%0A%09%09%09%09if%20(Augenanzahl%3D%3D6)%20%2F%2F%20Wenn%20i%20%3D%206%20dann%20i%20wieder%20auf%200%20setzen%0A%09%09%09%09%7B%0A%09%09%09%09%09Augenanzahl%3D0%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%09%0A%09%09%09StartStopAni(30)%3B%0A%0A%09%09%09%2F%2F%20Den%20ADC%20deaktivieren%2C%20brauchen%20wir%20nicht%20m%C3%BCsste%20aber%20pre%20Default%20aus%20sein.%0A%09%09%09power_adc_disable()%3B%0A%09%09%09%09%0A%09%09%09%2F%2F%20Pin-Change%20Interrupt%20f%C3%BCr%20die%204%20Taster%20erlauben%0A%09%09%09GIMSK%20%3D%20(1%3C%3CPCIE)%3B%0A%09%09%09PCMSK%20%7C%3D%20(1%3C%3CPB3)%3B%0A%09%09%0A%09%09%09sei()%3B%0A%09%09%09%0A%09%09%09PORTB%20%3D0b00001000%3B%20%2F%2F%20Sollten%20LEDs%20noch%20Leuchten%20vor%20Schlafen%20ausschalten.%0A%09%09%09%09%0A%09%09%09set_sleep_mode(SLEEP_MODE_PWR_DOWN)%3B%0A%09%09%09sleep_mode()%3B%0A%09%09%09%09%0A%09%09%09%2F%2F%20****************%20Aufwachen%20und%20alles%20f%C3%BCr%20den%20Reset%20%C3%BCber%20Watchdog%20vorbereiten%20******%0A%09%09%09wdt_enable(WDTO_1S)%3B%20%2F%2F%201s%20Sekunden%09Watchdog%20einstellen%09%0A%09%09%09wdt_enable(WDTO_30MS)%3B%20%2F%2F%2030ms%20Sekunden%09Watchdog%20einstellen%09%09%09%09%0A%09%09%09%09%09%09%09%09%09%09%0A%09%09%09%09%2F%2Ftu%20nix%20und%20warte%20auf%20den%20Biss%20des%20Wachhundes%0A%09%09%09%09_delay_ms(5000)%3B%20%2F%2F%20Der%20Wachhund%20ist%20auf%20eine%20Sek%20gestellt.%20Im%20Delay%20sind%20es%205%20Sekunden.%20-%20Also%20Reset%0A%09%09%09%09%2F%2F%20wdt_reset()%3B%0A%09%09%7D%0A%09%09%0A%09%7D%0A%09return%20(0)%3B%0A%7D%0A%0A%0A%0A%0Aint%20StartStopAni(int%20AnzahlBlinken)%0A%7B%0A%09for%20(int%20blink%3D0%3B%20blink!%3DAnzahlBlinken%3B%20blink%2B%2B)%20%2F%2F%20Blinken%20bis%20der%20Watchdog%20dem%20Spuk%20ein%20Ende%20macht%20oder%20die%20AnzahlBlinken%20erreicht%20ist%0A%09%7B%0A%09%09PORTB%20%5E%3D%20(1%3C%3CLED1_PIN)%3B%20%2F%2FToogle%20(Ein-%2C%20Ausschalten%20der%20LED%0A%09%09_delay_ms(50)%3B%20%2F%2F%20Warten%20damit%20LED%20eine%20Change%20hat%20zu%20blinken%0A%09%7D%0Areturn%20(0)%3B%09%0A%7D%0A%0A%0A%0A%0A%09%09%2F%2F%20wdt_reset()%3B%0A%0A%0A“ … Weiterlesen

Veröffentlicht unter Elektronik, Microcontroller, Wochenend Projekte | Schreib einen Kommentar

Wochenend-Projekt: elektronischer Würfel v1.01

Das Krippenlicht muss warten. Nachdem mein Board so gut funktioniert hat, wollte ich ein lange von mir geplantes Projekt starten, – einen elektronischen Würfel. Das Programm und die Platine sind recht trivial und meinen Elektronik- und Programmierkenntnissen entsprechend. Aber er … Weiterlesen

Veröffentlicht unter Elektronik, Microcontroller, Wochenend Projekte | Schreib einen Kommentar

Wochenend-Projekt: Entwicklungsboard für AtTiny13

Vor einigen Jahren hatte ich für unsere Weihnachtskrippe eine „Kerzenlicht Simulation“ mit einem ATtiny13 und einer LED gebaut. Meine Tochter und ich fanden das Licht letztes Weihnachten zu dunkel und wir wollten mit einer helleren LED das ganze Projekt noch … Weiterlesen

Veröffentlicht unter Elektronik, Microcontroller, Wochenend Projekte | Schreib einen Kommentar

Wochenend-Projekt (LED Würfel)

Inspiriert von einem Artikel in einer Zeitung haben wir einen LED–Würfel nach gebaut. Für den Aufbau haben wir eine Dose von einem Haarwachs genommen. Die RGB-LEDs haben wir aus dem Internet bestellt. Den Schalter, den man zum Ein- und Ausschalten … Weiterlesen

Veröffentlicht unter Elektronik, Wochenend Projekte | Schreib einen Kommentar

Wochenend-Projekt (RGB-LED)

Diese kleinen RGB-LED´s haben es mir schon immer angetan. Nun konnte ich sehr günstig einige „High Power LED’s“ übers Internet beziehen, die promt noch am Donnerstag geliefert wurden. Also hatte ich am Wochenende Zeit eine „zum Test“ zu verarbeiten. Einen … Weiterlesen

Veröffentlicht unter Arduino, Elektronik, Microcontroller, Wochenend Projekte | Schreib einen Kommentar