Analog und Digital Uhr und IRFernbedienung

Hi leute ich habe heute in die wanduhr von meinem sohn den ws2812b LED Ring mit 60Leds verbaut.
nach dieser Anleitung

Ich habe daran noch paar modifikationen vorgenommen. z.b. automatisches dimmen bei umgebungslicht änderrung

nun wollte ich die 1,5volt Batterie aus dem Mechanischen Uhrwerk entfernen und z.b. vom arduino 1,5volt abzweigen. z.b. mittels PWM pin und Kondensator (so wie man eine LED mit PWM dimmen kann)
geht das? weil eine normale batterie im Mechanischenuhrwerk hält ja sehr lange also denke ich das da nicht viel strom fließen wird, und der kondensator würde das PWM signal glätten und somit auf 1,5volt bringen.
ICH WEIß ABER NICHT WIE.
oder hat jemand eine Bessere Idee?

Ich habe für den betrieb einen 3,6volt (18650) Akku und von dort auf 5 volt hochgezogen und dann in den Arduino und LED Streifen.

vielen dank schonmal

Zu was brauchst Du ein mechanisches Uhrwerk?
Grüße Uwe

das Mechanische Uhrwerk läuft nur zur show mit.
Ist die uhr von meinem sohn.

würde das gehen mittels pwm oder müsste ich nun umständiger weise irgendwelche zusätzlichen elemente besorgen?

Wie lange glaubst Du funktioniert der Arduino mit dem LiPo Akku? Wie lädtst Du den Akku?
Grüße Uwe

Warum nimmst du keinen Spannungsregler mit 1,5 Volt ?
Z.B. AMS1117-1.5

ich weiß noch nicht wie lange das halten wird auf dem Akku.
Laden tue ich die mit diesem Modul TP4056
und umwandeln von 3,6volt auf 5volt mit einem einfachen stepupwandler.

ja dann werde ich es wohl doch mit diesem machen, wie vorgeschlagen
AMS1117-1.5 //danke für den Tip


aber mal noch was anderes ich habe ja die irfernbedienung mit dran und wollte nun eigentlich wenn ich eine Taste drücke das das unterprogramm von der uhr angeht, dieses aber auch abgebrochen werden kann und ein anderes unterprogramm dann aktiv ist mit einer anderen taste

so das ich z.b. per tastendruck von der uhr auf die simple darstellung der farben wechseln kann.

gedacht habe ich auch noch ein unterprogramm mit ton erkennung so das dann eine equalizer animation auf den leds stattfindet und sollte man dann wieder auf die taste für die uhr drücken sollte es wieder zurückwechseln.

ich habe schon einige bespiele z.b.

case taste1:
uhrloop();
break;
case taste2:
musik();
break;
case taste3:
licht();
break;

so in der art gesehen und auch ausrobiert.

das decodieren der tasten funktioniert super.
wenn der arduino startet leuchtet erstmal nichts bis ich die taste der uhr drücke.
dann läuft diese aber ich kann sie dann nicht einfach unterbrechen und das programm wechseln.

was kann ich da tuen?

flexcon:
was kann ich da tuen?

Da wir deinen Sketch nicht kennen, ist eine Antwort schwer möglich.

ohje wie blöd von mir
sketch im anhang
neoclock.ino ist die eigentlich hauptdatei die anderen stehen aber im zusammenhang

in der irloop.ino hatte ich mehrer ansäte probiert die ich dann nach unten verschoben und ausgeklammert habe
nun habe ich erstmal im normalen viod loop teil den eintrag irloop(); ausgeklammert weil es nicht funktioniert hat

allesaus.ino (39 Bytes)

irloop.ino (907 Bytes)

Lichtsensor.ino (206 Bytes)

neoclock.ino (6.66 KB)

startlicht.ino (27 Bytes)

uhrloop.ino (317 Bytes)

flexcon:
neoclock.ino ist die eigentlich hauptdatei die anderen stehen aber im zusammenhang

Und warum hast du die getrennt ?

weil es mir auf die nerven ging ständig hoch und runter zu scrollen um werte anzupassen beim ausprobieren

flexcon:
weil es mir auf die nerven...

Uns macht es das aber nicht einfacher.

ok,
so alles zusammen in einem

wie kann ich denn das problem lösen das ich mit der irfernbedienung das laufende ausgewählte unterprogramm unterbreche und ein anderes starte.

danke

neoclock1.ino (8.12 KB)

In C gibt es keine Unterprogramme sondern nur Funktionen.

  irrecv.decode(&results); 
      int value = results.value;
      switch(value) {
      case 16246807 : //Taste für Uhr
      uhrloop();
      break;
      case 16238647 :
      startlicht();
      break;
      case 16248847 :
      allesaus();
      break;

Hier rufst Du nur einmal die Funktionen auf. Du mußt den Wert für den aktiven Modus in Funktion der gedrückten Taste speichern und mit diesem Wert die Funktion auswählen.

Grüße Uwe

ohja funktion, meinte ich ja.

ok und wie mache ich das?

flexcon:
nun wollte ich die 1,5volt Batterie aus dem Mechanischen Uhrwerk entfernen und z.b. vom arduino 1,5volt abzweigen. z.b. mittels PWM pin und Kondensator (so wie man eine LED mit PWM dimmen kann)
geht das? weil eine normale batterie im Mechanischenuhrwerk hält ja sehr lange

Da die Batterie sehr lange hält, würde ich dir ans Herz legen, die Uhr normal auf Batterie weiterlaufen zu lassen. Sie läuft auch weiter, wenn man keine Lust auf Lichtshow hat oder der Akku nicht geladen ist.

WS2812 zusammen mit IR-Fernbedienung habe ich nicht zum Laufen gebracht, weil das Ansteuern der WS2812 (zeitkritisches Protokoll mit Takt und Daten an einem Pin) blockierend ist. APA102 zusammen mit IR-Fernbedienung hingegen funktioniert, da Takt und Daten auf zwei Pins verteilt sind.

agmue:
WS2812 zusammen mit IR-Fernbedienung habe ich nicht zum Laufen gebracht, weil das Ansteuern der WS2812 (zeitkritisches Protokoll mit Takt und Daten an einem Pin) blockierend ist....

Notfalls muss man da mit einem "Hilfscontroller" ran.
Genau dafür gibt es die "IR to I2C" mit IRQ auf dem ATTiny85.

Schönes Projekt :slight_smile:

Da Du nicht den originalen Code der Tastatur überträgst, müßte man das Programm für den ATtiny an die eigene Tastatur anpassen, richtig?

agmue:
Schönes Projekt :slight_smile:

Da Du nicht den originalen Code der Tastatur überträgst, müßte man das Programm für den ATtiny an die eigene Tastatur anpassen, richtig?

Ja, stimmt.
Da ist man dann sehr flexibel. :wink:
Wobei der Sketch ja von jedem individuell angepasst und mit dem originalen Code versehen werden kann.

ah ok weil ich habe hier noch einen attiny85 auf einer platine rumliegen
https://www.ebay.de/i/263173616492?chn=ps&dispItem=1

d.h. ich könnte diesen code dafür nehmen die daten von der ir fernbedinung zu empfangen und zu decodieren und dann wird diese an den arduino übertragen
richtig.