Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

italienische Wordclock

Komponenten und Verbrauchsmaterialien

Arduino Nano R3
× 1
NeoPixel-Streifen
144
× 1
Adafruit Standard LCD - 16x2 Weiß auf Blau
mit I2C-Modul
× 1
Echtzeituhr (RTC)
× 1
SparkFun Drucktastenschalter 12 mm
× 4
Widerstand 10k Ohm
× 3
Widerstand 475 Ohm
× 1
1N4007 – Hochspannungs-, Hochstrom-Nenndiode
× 3
DC-DC-Wandler einstellbarer Step-Down
× 1
Wandrahmen RIBBA (Ikea)
× 1
Gewiss-Kistendeckel 150 x 110
× 1
Aluminiumstreifen 230 mm x 10 mm x 1 mm
× 1

Über dieses Projekt

Meine Leidenschaft für Arduino-Uhren hat mich dazu gebracht, eine "Wortuhr" zu entwickeln, da ich in Italien lebe, spreche ich Italienisch. Für die Realisierung des Projektes habe ich mich von einem Tutorial "Word Clock Javelin" inspirieren lassen, ein paar kleine Änderungen vorgenommen ... und hier für euch "Word Clock of Italy"!

Zusätzlich zu "die Stunden erzählen" auf Italienisch wollte ich die Geburtstage meiner Familie (einschließlich der Katze) hinzufügen. Für den Bau des "Gerüsts" habe ich eines verwendet, das bereits von IKEA gemacht wurde, und interne Änderungen habe ich das Material verwendet, das ich zu Hause hatte:

Zur Realisierung des Bildschirms wird das mit Inkscape gezeichnete Muster angezeigt.

Mein Panel misst 12 x 12 Buchstaben mit einer Grundfläche von 200 mm. Da ich keinen 3D-Drucker habe, habe ich das Raster mit Alu-Streifen gemacht, und den Kontakt der LED mit Klebeschwamm isoliert, dies diente auch der Lichtisolierung.

Elektronische Schaltung

Um die Zeit zu behalten, habe ich eine RTC verwendet .

Um die Uhrzeit einstellen zu können, habe ich Tasten (P1, P2, P3) und ein 16 x 2 Display hinzugefügt. (Siehe auch das Projekt "Clock Set Date Time"). Wie aus dem Schaltplan ersichtlich, sind die Tasten über einen Pull-Down . mit dem Arduino verbunden Schaltung.

Da die Anzeige nur zum Einstellen der Uhrzeit dient, habe ich den Jumper durch einen Knopf ersetzt , dadurch erhellt es nur seine Verwendung. Die Diode D1 dient als Verpolungsschutz.

Die Diode D2 dient dazu, den Neopixelstreifen nicht zu speisen, wenn wir aus irgendeinem Grund die Skizze Arduino ändern müssen (zu viel Strom könnte ihn beschädigen). Die Diode D3 dient dazu, auf 5 Volt die Spannung an Neopixel zu bringen.

Ich füge den Schaltplan, das Fritzing-Schema, das PCB-Layout bei.

Matrix

Um die Matrix zu realisieren, habe ich die verschiedenen Streifen als Bild verbunden. Zickzack von oben links nach unten.

Arduino-Bibliotheken

  • RTC
  • LiquidCrystal_I2C
  • Adafruit_NeoPixel

Erklärung des Codes

Der Code ist in 5 Hauptteile unterteilt:

  • "DisplayDateTime":zeigt Datum und Uhrzeit im LCD-Display an
  • "HourClock":zeigt Stunden im Panel an
  • "MinuteClock":zeigt die Minuten im Panel an
  • "Auguri":Alles Gute zum Geburtstag
  • "Void paintWord (arrWord int [], uint32_t intColor)" ist das Herzstück des Codes zum Einschalten des Neopixels, "arrWord int []" sollen die LEDs leuchten, "uint32_t intColor" ist ihre Farbe

Um eine genauere Uhr zu erhalten, habe ich die Zahlen 1, 2, 3, 4 entsprechend den fortlaufenden Minuten hinzugefügt.

Beispiel :"SONO LE ORE DIECI E VENTI 4" bedeutet 10:24 (10:20 + 00:04), "SONO LE DIECI MENO QUINDICI 2" bedeutet 09:47 (09:45 + 00:02)

Montage

  • Öffne den Rahmen und reinige das Glas gut
  • Einfügen des Drucks in Acetat
  • Legen Sie das Druckpapier ein
  • Gitter einfügen
  • Setzen Sie das Panel mit den LEDs ein
  • Fügen Sie ein Stück Sperrholz ein, das etwas größer ist als der Steuerkasten
  • Befestigen Sie die Steuerbox mit selbstschneidenden Schrauben

Achten Sie genau auf die Ausrichtung der beiden Drucke

Standort

Stell sie ins Wohnzimmer, sie sieht gut aus.

Code

  • Italienische WordClock
Italienische WordClockArduino
/*:Projekt:WordClock:Autor:Tiziano Bianchettin:Datum:25.09.2016:Revision:1:Lizenz:Public Domaindank:http://www.instructables.com/id/Javelins-Word-Clock / http://arduinoenonsolo.blogspot.it/2012/12/orologio-con-arduino-e-il-ds1307.html http://www.mauroalfieri.it/ http://www.danielealberti.it/ http://www.maffucci.it/ Mein Elektroniklaborprofessor "Perito Carli" *///************Bibliotheken****************//# include #include #include #include //***********neopixel********* *******//#define PIN 9 // pin neopixel#define NUM_LEDS 144 // 12 x 12#define GIORNO 255 ​​// full on#define SERA 25 // ein Zehntel onAdafruit_NeoPixel strip =Adafruit_NeoPixel(NUM_LEDS, PIN , NEO_GRB + NEO_KHZ800); // 144 LED, Pin 9int intBrightness; //****************FARBEN************ // uint32_t Rot =strip.Color (255, 0, 0); uint32_t Grün =Streifen.Farbe( 0, 255, 0);uint32_t Blau =Streifen.Farbe( 0, 0, 255);uint32_t Weiß =Streifen.Farbe( 255, 255, 255);uint32_t Gelb =Streifen.Farbe( 255 , 255, 0);uint32_t Lila =Streifen.Farbe( 60, 0, 255);uint32_t Aus =Streifen.Farbe( 0, 0, 0);LiquidCrystal_I2C lcd(0x27,16,2); // Anzeige I2C 16 x 2RTC_DS1307 RTC;int P1=6; // Taste SET MENU'int P2=7; // Schaltfläche +int P3=8; // Schaltfläche -int oraagg;int minagg;int annoagg;int meseagg;int dayagg;int menu =0;int ora;//********Präsentation************//int txtSONO[] ={1,2,3,4,6,7,9,10,11,-1};//********Stunden*********//int txtUNA[] ={20,21,22,-1};int txtDUE[] ={17,18,19,-1};int txtTRE[] ={57,58,59,-1};int txtQUATTRO[ ] ={96,97,98,99,100,101,102,-1};int txtCINQUE[] ={30,31,32,33,34,35,-1};int txtSEI[] ={103,104,105,-1};int txtSETTE[] ={48,49,50,51,52,-1};int txtOTTO[] ={72,73,74,75,-1};int txtNOVE[] ={60,61,62,63 ,-1};int txtDIECI[] ={12,13,14,15,16,-1};int txtUNDICI[] ={84,85,86,87,88,89,-1};int txtDODOCI[ ] ={90,91,92,93,94,95,-1};//********Alles Gute zum Geburtstag*********//int txtAUGURI[] ={24, 25,26,27,28,29,-1};int txtSIMONE[] ={36,37,38,39,40,41,-1};int txtJACOPO[] ={42,43,44,45, 46,47,-1};int txtMINU[] ={53,54,55,56,-1};int txtTIZIANO[] ={65,66,67,68,69,70,71,-1}; int txtMARILENA[] ={76,77,78,79,80,81,82,83,-1};//********Minuten*********//int txtE [] ={107,-1};int txtMENO[] ={116,117,118,119,-1};int txtMUN O[] ={5,-1};int txtMDUE[] ={64,-1};int txtMTRE[] ={106,-1};int txtMQUATTRO[] ={125,-1};int txtMCINQUE[ ] ={132,133,134,135,136,137,-1};int txtMDIECI[] ={120,121,122,123.124,-1};int txtQUINDICI[] ={108,109,110,111.112,113,114,115,-1};int txtVENTI[] ={139,140,-1,142; {126,127,128,129,130,131,-1};void setup () { strip.begin (); Strip-Show(); lcd.begin(); LCD-Rücklicht(); lcd.clear(); pinMode (P1, EINGANG); PinMode (P2, EINGANG); PinMode (P3, EINGANG); Serial.begin (9600); Wire.begin(); RTC.begin(); if (! RTC.isrunning ()) { Serial.println ( "RTC läuft NICHT!"); // Datum und Uhrzeit zur Kompilierzeit einstellen RTC.adjust(DateTime(__DATE__, __TIME__)); } // RTC.adjust(DateTime(__DATE__, __TIME__)); // "//" entfernen, um die Zeit einzustellen // Die Standardanzeige zeigt das Datum und die Uhrzeit an int menu =0;} void loop () { // Überprüfen Sie, ob Sie die SET-Taste drücken und den Menüindex erhöhen if (digitalRead ( P1)) { Menü =Menü + 1; } // In welche Unterroutine sollen wir gehen? if (menu==0) { DisplayDateTime(); // void DisplayDateTime DateTime now =RTC.now(); if((now.hour()>=19) || (now.hour() <7 )){// Helligkeit Tag - Nacht anpassen intBrightness =SERA; aufrechtzuerhalten. Sonst{ intBrightness =GIORNO; } strip.setBrightness (intBrightness); Strip-Show(); int timeMin =now.minute(); int modMin =timeMin % 5; // https://www.arduino.cc/en/Reference/Modulo if (modMin ==0){// jede Minute ändern die LEDs die Farbe und leuchten die entsprechende Nummer auf paintWord(txtSONO, White); PaintWord (txtMQUATTRO, AUS); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtSONO, Gelb); PaintWord (txtMUNO, Rot); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtSONO, Grün); PaintWord (txtMUNO, Aus); PaintWord (txtMDUE, Blau); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtSONO, Blue); PaintWord (txtMDUE, Aus); PaintWord(txtMTRE, Grün); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtSONO, Red); PaintWord (txtMTRE, Aus); PaintWord(txtMQUATTRO, Gelb); } StundenUhr(); // HourClock MinuteClock () stornieren; // Void MinuteClock Auguri(); // Void Auguri strip.show(); } if (menu==1) { DisplaySetHour(); } if (menu==2) { DisplaySetMinute(); } if (Menü==3) { DisplaySetYear(); } if (Menü==4) { DisplaySetMonth(); } if (menu==5) { DisplaySetDay(); } if (Menü==6) { StoreAgg(); Verzögerung (500); Menü=0; } delay(100);}void showStrip() { #ifdef ADAFRUIT_NEOPIXEL_H // NeoPixel strip.show(); #endif #ifndef ADAFRUIT_NEOPIXEL_H // FastLED FastLED.show(); #endif}void setPixel(int Pixel, byte red, byte green, byte blue) { #ifdef ADAFRUIT_NEOPIXEL_H // NeoPixel strip.setPixelColor(Pixel, strip.Color(rot, grün, blau)); #endif #ifndef ADAFRUIT_NEOPIXEL_H // FastLED LEDs[Pixel].r =rot; LEDs[Pixel].g =grün; LEDs[Pixel].b =blau; #endif}void setAll(byte red, byte green, byte blue) { for(int i =0; i =40){// von den 40 Minuten 1 zu "Stunde" hinzufügen ora =ora+1; } Schalter (ora) { Fall 0:Fall 12:Fall 24:PaintWord (txtUNDICI, Aus); Strip-Show(); if (modMin ==0) {paintWord (txtDODOCI, White); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtDODOCI, Gelb); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtDODOCI, Green); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtDODOCI, Blue); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtDODOCI, Red); Strip-Show(); } brechen; Fall 1:Fall 13:PaintWord (txtDODOCI, Aus); Strip-Show(); if (modMin ==0) {paintWord (txtUNA, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtUNA, Yellow); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtUNA, Green); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtUNA, Blue); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtUNA, Red); Strip-Show(); } brechen; Fall 2:Fall 14:PaintWord (txtUNA, Aus); Strip-Show(); if (modMin ==0) {paintWord (txtDUE, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtDUE, Gelb); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtDUE, Grün); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtDUE, Blue); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtDUE, Rot); Strip-Show(); }brechen; Fall 3:Fall 15:PaintWord (txtDUE, Aus); Strip-Show(); if (modMin ==0) {paintWord (txtTRE, White); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtTRE, Yellow); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2){paintWord (txtTRE, Green); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtTRE, Blue); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4){paintWord (txtTRE, Red); Strip-Show(); } brechen; Fall 4:Fall 16:PaintWord(txtTRE, Off); Strip-Show(); if (modMin ==0) {paintWord (txtQUATTRO, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtQUATTRO, Gelb); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtQUATTRO, Green); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtQUATTRO, Blau); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4){paintWord (txtQUATTRO, Red); Strip-Show(); } brechen; Fall 5:Fall 17:PaintWord(txtQUATTRO, Aus); Strip-Show(); if (modMin ==0) {paintWord (txtCINQUE, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtCINQUE, Gelb); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtCINQUE, Green); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtCINQUE, Blue); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtCINQUE, Red); Strip-Show(); } brechen; Fall 6:Fall 18:PaintWord (txtCINQUE, Aus); Strip-Show(); if (modMin ==0) {paintWord (txtSEI, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtSEI, Gelb); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtSEI, Grün); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtSEI, Blau); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtSEI, Red); Strip-Show(); } brechen; Fall 7:Fall 19:PaintWord (txtSEI, Aus); Strip-Show(); if (modMin ==0) {paintWord (txtSETTE, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtSETTE, Gelb); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtSETTE, Green); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtSETTE, Blue); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtSETTE, Rot); Strip-Show(); } brechen; Fall 8:Fall 20:PaintWord (txtSETTE, Aus); Strip-Show(); if (modMin ==0) {paintWord (txtOTTO, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtOTTO, Gelb); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtOTTO, Green); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtOTTO, Blau); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtOTTO, Rot); Strip-Show(); } brechen; Fall 9:Fall 21:PaintWord (txtOTTO, Aus); Strip-Show(); if (modMin ==0) {paintWord (txtNOVE, White); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtNOVE, Yellow); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtNOVE, Green); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtNOVE, Blue); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtNOVE, Red); Strip-Show(); } brechen; Fall 10:Fall 22:PaintWord (txtNOVE, Aus); Strip-Show(); if (modMin ==0) {paintWord (txtDIECI, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtDIECI, Yellow); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtDIECI, Green); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtDIECI, Blue); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtDIECI, Red); Strip-Show(); } brechen; Fall 11:Fall 23:PaintWord(txtDIECI, Aus); Strip-Show(); if (modMin ==0) {paintWord (txtUNDICI, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtUNDICI, Gelb); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtUNDICI, Grün); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtUNDICI, Blau); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtUNDICI, Rot); Strip-Show(); }brechen; }}void MinuteClock(){ DateTime now =RTC.now(); int timeMin =now.minute(); int modMin =timeMin % 5; // https://www.arduino.cc/en/Reference/Modulo switch (now.minute()) { Fall 5:Fall 6:Fall 7:Fall 8:Fall 9:if (modMin ==0){paintWord (txtE, Weiß); PaintWord (txtMCINQUE, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtE, Gelb); PaintWord (txtMCINQUE, Gelb); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtE, Grün); PaintWord (txtMCINQUE, Grün); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtE, Blau); PaintWord (txtMCINQUE, Blau); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtE, Rot); PaintWord (txtMCINQUE, Rot); Strip-Show(); }brechen; Fall 10:Fall 11:Fall 12:Fall 13:Fall 14:PaintWord(txtMCINQUE, Off); Strip-Show(); if (modMin ==0) {paintWord (txtE, Weiß); PaintWord (txtMDIECI, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtE, Gelb); PaintWord (txtMDIECI, Gelb); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtE, Grün); PaintWord (txtMDIECI, Grün); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtE, Blau); PaintWord (txtMDIECI, Blau); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtE, Rot); PaintWord (txtMDIECI, Rot); Strip-Show(); } brechen; Fall 15:Fall 16:Fall 17:Fall 18:Fall 19:PaintWord(txtMDIECI, Off); Strip-Show(); if (modMin ==0) {paintWord (txtE, Weiß); paintWord(txtQUINDICI, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtE, Gelb); PaintWord (txtQUINDICI, Gelb); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtE, Grün); PaintWord(txtQUINDICI, Grün); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtE, Blau); PaintWord(txtQUINDICI, Blau); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtE, Rot); PaintWord(txtQUINDICI, Rot); Strip-Show(); }brechen; Fall 20:Fall 21:Fall 22:Fall 23:Fall 24:PaintWord(txtQUINDICI, Off); Strip-Show(); if (modMin ==0) {paintWord (txtE, Weiß); PaintWord(txtVENTI, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtE, Gelb); PaintWord(txtVENTI, Gelb); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtE, Grün); PaintWord(txtVENTI, Grün); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==3) {paintWord (txtE, Blau); PaintWord(txtVENTI, Blau); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==4) {paintWord (txtE, Rot); PaintWord(txtVENTI, Rot); Strip-Show(); }brechen; Fall 25:Fall 26:Fall 27:Fall 28:Fall 29:if (modMin ==0){paintWord(txtE, White); PaintWord(txtVENTI, Weiß); PaintWord (txtMCINQUE, Weiß); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==1) {paintWord (txtE, Gelb); PaintWord(txtVENTI, Gelb); PaintWord (txtMCINQUE, Gelb); Strip-Show(); aufrechtzuerhalten. Sonst if (modMin ==2) {paintWord (txtE, Grün); PaintWord(txtVENTI, Grün); paintWord(txtMCINQUE, Green);...Diese Datei wurde gekürzt, bitte laden Sie sie herunter, um ihren vollen Inhalt zu sehen.
Italienische WordClock

Kundenspezifische Teile und Gehäuse

wordklock_aWvuaZRw4N.svg

Schaltpläne

wordklock_JBoZPYrsYr.fzz

Herstellungsprozess

  1. Pflanzenalarm bei Durstalarm
  2. Einfache Wordclock (Arduino)
  3. Wortuhr mit Minutenauflösung der Zeit in Worten
  4. Sigfox-kWh-Zähler
  5. Bluetooth-Temperaturüberwachung
  6. Gestengesteuerte Sperre
  7. Der Companion-IC
  8. USB-MIDI-Adapter
  9. Ein isolierter Analogeingang für Arduino
  10. Messen Sie Ihre Reaktionszeit