Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert sind; Die von diesem Forum gesetzten Cookies düfen nur auf dieser Website verwendet werden und stellen kein Sicherheitsrisiko dar. Cookies auf diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Hallo, Gast
Du musst dich registrieren bevor du auf unserer Seite Beiträge schreiben kannst.

Benutzername
  

Passwort
  





Durchsuche Foren

(Erweiterte Suche)

Foren-Statistiken
» Mitglieder: 45
» Neuestes Mitglied: micha2057
» Foren-Themen: 47
» Foren-Beiträge: 64

Komplettstatistiken

Aktive Themen
LED-Lauflicht
Forum: Projekte
Letzter Beitrag: Gorathan
30.05.2019, 19:08
» Antworten: 1
» Ansichten: 387
DS18B20-Tester
Forum: Projekte
Letzter Beitrag: Gorathan
09.05.2019, 10:58
» Antworten: 0
» Ansichten: 285
Backofen-Thermometer
Forum: Projekte
Letzter Beitrag: Gorathan
05.05.2019, 18:42
» Antworten: 0
» Ansichten: 285
Taster entprellen
Forum: Nützliche Funktionen
Letzter Beitrag: Gorathan
26.04.2019, 18:08
» Antworten: 0
» Ansichten: 313
Anfang der Jahreszeiten b...
Forum: Nützliche Funktionen
Letzter Beitrag: Gorathan
22.04.2019, 17:39
» Antworten: 0
» Ansichten: 299
Buzzer-ISR
Forum: Nützliche Funktionen
Letzter Beitrag: Gorathan
05.04.2019, 15:36
» Antworten: 0
» Ansichten: 308
Problemlösung: ESP8266 pe...
Forum: Hilfe und Unterstützung
Letzter Beitrag: Gorathan
06.03.2019, 09:00
» Antworten: 0
» Ansichten: 333
Arduino Char-Generator
Forum: Projekte
Letzter Beitrag: Gorathan
21.01.2019, 18:58
» Antworten: 0
» Ansichten: 414
Ein NewsDisplay mit AutoI...
Forum: Projekte
Letzter Beitrag: Gorathan
13.01.2019, 17:21
» Antworten: 0
» Ansichten: 457
GIF-Animation mit den neu...
Forum: Scripte
Letzter Beitrag: Gorathan
06.01.2019, 16:38
» Antworten: 0
» Ansichten: 404

 
Information LED-Lauflicht
Geschrieben von: Gorathan - 30.05.2019, 11:39 - Forum: Projekte - Antworten (1)

Hier ist mal eine kleine Lauflicht-Schaltung.
Es werden 8 Low-Current-LEDs (2 mA pro LED) sowie 8 Widerstände mit 1.5 kOhm verwendet.
Als Mikroprozessor kommt ein Arduino Nano (oder Clone) zum Einsatz.

Hier mal der Fritzing-Schaltplan:
   

Das Programm für den Nano (siehe Anhang) bietet 10 verschiedene Lauflicht-Programme, die man über eine Eingabe auf der seriellen Schnittstelle ändern kann.
Außerdem kann man die Laufrichtung (Links <-> Rechts) ändern.
Das Ganze läuft blockierungsfrei (ohne Delays) und (wer will) kann die Programme noch anpassen (Standard: bis zu 30 Schritte je Programm).
Man kann natürlich auch noch die maximale Anzahl der Schritte erhöhen. So lange, wie der Speicher des Nano noch ausreicht...



Angehängte Dateien
.zip   LED_Lauflicht.zip (Größe: 1,58 KB / Downloads: 0)
Drucke diesen Beitrag

Information DS18B20-Tester
Geschrieben von: Gorathan - 09.05.2019, 10:58 - Forum: Projekte - Keine Antworten

Hier ist ein Programm zum testen von DS18B20-Temperatur-Sensoren.
Die Ausgabe erfolgt über den seriellen Port und über ein I2C-LCD (optional).
Die DS18B20-Class habe ich selbst geschrieben, weil ich möglichst viel Speicher sparen wollte. Diese Klasse kann man ganz gut in eigene Projekte einbauen.
Wie gesagt, sie ist klein und lässt sich einfach abfragen. Die Temperatur wird asynchron eingelesen, wodurch man währenddessen andere Funktionen ausführen kann.
Das eigentliche einlesen geschieht dann innerhalb von 17-18 ms. Die übliche Konvertierungszeit kann man anderweitig nutzen.
Ich habe das Programm ausführlich kommentiert, sodass die Funktionsweise der Klasse hoffentlich verständlich wird.

Hier mal ein "Fritzing-Schaltplan":
   

Das Programm und die Klassen-Dateien (.cpp und .h) befinden sich im ZIP-Archiv (Anhang).



Angehängte Dateien
.zip   DS18B20-Tester.zip (Größe: 189,7 KB / Downloads: 0)
Drucke diesen Beitrag

Information Backofen-Thermometer
Geschrieben von: Gorathan - 05.05.2019, 18:42 - Forum: Projekte - Keine Antworten

Ich habe gerade mein neuestes Projekt fertiggestellt. Es handelt sich dabei um ein Backofen-Thermometer. Ich möchte es hier mal vorstellen.
Dabei habe ich folgendes eingesetzt:
- einen Arduino Nano (ok, einen China-Clone)
- eine RTC (DS3231)
- ein 16x2 LCD mit I2C-Backpack
- ein MAX6675 mit K-Thermoelement (0...800 Grad C.)
- ein Battery Shield für einen 18650 Li-Ionen-Akku (inkl. Lade-/Entladeschaltung und 5V-Ausgang)
- einen Dreh-Enkoder mit Taster (beim runterdrücken)
- einen aktiven Buzzer (so einen kleinen Piepser)
- und einen Schalter (zum ein-/ausschalten)
Zusammengebaut sieht es so aus:
   

Schaltplan:
   

Zitat: schrieb:Der Sketch verwendet 11058 Bytes (35%) des Programmspeicherplatzes. Globale Variablen verwenden 400 Bytes (19%) des dynamischen Speichers.
Speichermäßig ist da also noch Luft. Es fehlt ja noch die Möglichkeit die Uhrzeit der DS3231 zu stellen. Das werde ich noch einbauen.
Den Sketch findet ihr im ZIP-Archiv (Anhang), falls es jemanden interessiert.



Angehängte Dateien
.zip   Backofen_Thermometer.zip (Größe: 4,71 KB / Downloads: 0)
Drucke diesen Beitrag

Information Taster entprellen
Geschrieben von: Gorathan - 26.04.2019, 18:08 - Forum: Nützliche Funktionen - Keine Antworten

Da ich in meinen Projekten oftmals einen oder mehrere Taster verwende und ich zum entprellen nicht gleich eine "riesige" Library einbinden will, habe ich mal eine kleine PushButton-Klasse geschrieben. Die verbraucht nur wenig Speicher und hat doch alles, was ich so brauche (inkl. konfigurierbarer Tastenwiederholung).
Diese Klasse verwendet keine Interrupts!
Der Tastenzustand wird jedes Mal bei "Btn.pressed()" ausgelesen, was bedeutet, dass die Methode jedes Mal in der Loop-Funktion aufgerufen werden muss.
Und die Loop-Funktion darf nicht blockierend programmiert sein (was sich sowieso von selbst verstehen sollte). Delays unbedingt vermeiden!



Show ContentPushButton.h:

Show ContentPushButton.cpp:

Im Anhang befindet sich noch ein Beispiel-Sketch für einen Arduino-Nano.



Angehängte Dateien
.zip   My_PushButton_Class.zip (Größe: 2,33 KB / Downloads: 0)
Drucke diesen Beitrag

Information Anfang der Jahreszeiten berechnen
Geschrieben von: Gorathan - 22.04.2019, 17:39 - Forum: Nützliche Funktionen - Keine Antworten

Um den Anfang der Jahreszeiten genau berechnen zu können, muss man schon einen 32-Bit-Mikroprozessor nehmen. Also einen ESP8266 zum Beispiel.
Ein 8-Bit ATmega (z.B. Arduino UNO oder Nano) würde ein "falsches" Ergebnis liefern. Die Ungenauigkeit liegt dort bei bis zu 12 Stunden.

Mit einem ESP8266 funktioniert das Programm aber recht genau (Abweichung liegt bei +-1 Minute).
Ich habe das Programm auf Mitteleuropäische Zeit konfiguriert. Die Sommerzeit wird automatisch addiert. Es wird keine zusätzliche Bibliothek benötigt.
Vielleicht könnt ihr so ein Programm ja gebrauchen...



Angehängte Dateien
.zip   CalcSeason.zip (Größe: 2,92 KB / Downloads: 0)
Drucke diesen Beitrag

Information Buzzer-ISR
Geschrieben von: Gorathan - 05.04.2019, 15:36 - Forum: Nützliche Funktionen - Keine Antworten

Hier ein kleines Beispiel, wie man einen aktiven Buzzer per Timer-Interrupt ansteuern kann.
Das hat den Vorteil, dass man keine Delays und Schleifen benutzen muss. Man gibt einfach z.B. "Beep(3, 500, 200);" ein und schon werden drei Toene mit 500ms Puls- und 200ms Pausendauer abgespielt.
Weil das interruptgesteuert ist, kann man danach einfach das eigene Programm weiterlaufen lassen.
Man muss nur aufpassen, bei Programmen oder Bibliotheken, die ebenfalls den Timer1-Interrupt benutzen. Dann muss man auf einen anderen Timer-Interrupt ausweichen.

Hier mal als Fritzing-Platine:
   


Show ContentSourcecode:

Im Anhang (ZIP-Archiv) befindet sich der Sourcecode als Arduino-Sketch.



Angehängte Dateien
.zip   Buzzer-ISR.zip (Größe: 1,38 KB / Downloads: 0)
Drucke diesen Beitrag

Information Problemlösung: ESP8266 per OTA
Geschrieben von: Gorathan - 06.03.2019, 09:00 - Forum: Hilfe und Unterstützung - Keine Antworten

Jeder, der schonmal einen ESP8266 per OTA (over the air) programmiert hat, wird wohl schonmal mit dem Problem konfrontiert worden sein, dass die Arduino-IDE die IP-Adresse des ESP im Menü "Werkzeuge/Port" nicht anzeigt und somit eine Programmierung nicht möglich ist.
Im Netz findet man zahlreiche "Lösungen", wie IDE neustarten, Rechner neustarten, Netzwerk von Windows scannen lassen, ESP anpingen, etc...
Das hat bei mir alles nichts gebracht. Die IP-Adresse des ESP wollte nicht im Menü auftauchen.

Bis ich durch Zufall auf eine Methode stieß, die (bisher) immer funktionierte.
Lösung1: das WLAN im Router kurz ausschalten und dann wieder einschalten.
Danach taucht die IP-Adresse im Menü auf. Ich weiß nicht, warum das so ist bzw. was da im Hintergrund abläuft, aber es funktioniert jedes Mal. Smile

Edit: Es gibt noch eine Lösung des Problems!


Lösung2: Man installiert auf einem Smartphone (das sich im gleichen WLAN befindet) die App "Fing" und scannt damit das Netzwerk.

Danach taucht die IP-Adresse ebenfalls wieder im Menü auf. Ja, im Menü der IDE auf dem PC!
Noch ein Nachtrag: Nachdem ich das jetzt einige Tage getestet habe, gefällt mir die zweite Lösung deutlich besser und es funktioniert zuverlässig jedes Mal.
Fing starten, Netzwerk scannen und schon stehen die Ports von allen ESP (im selben Netzwerk) in der Arduino-IDE zur Verfügung.

Drucke diesen Beitrag

Information Arduino Char-Generator
Geschrieben von: Gorathan - 21.01.2019, 18:58 - Forum: Projekte - Keine Antworten

Hier ist ein kleines AutoIt-Programm, mit dem man benutzerdefinierte Zeichen für die beliebten Arduino-LCDs (16x2 oder 20x4) erstellen kann.
Man kann 4 Zeichen "zusammenpixeln" und erhält dann unten die Bitwerte, die man in die Zwischenablage kopieren und in das eigene Arduino-Programm übernehmen kann.
Ganz oben sind zwei Buttons zum löschen [0] bzw. zum setzen [1] aller Pixel. Mit den Pfeiltasten kann man die gesetzen Pixel um jeweils ein Pixel in die entsprechende Richtung verschieben.


Screenshot:
   



Angehängte Dateien
.zip   Arduino Char-Generator_v1_1.zip (Größe: 663,58 KB / Downloads: 0)
Drucke diesen Beitrag

Information Ein NewsDisplay mit AutoIt und Arduino
Geschrieben von: Gorathan - 13.01.2019, 17:21 - Forum: Projekte - Keine Antworten

Ich dachte mir, ich kombiniere mal wieder zwei meiner Hobbys (AutoIt und Arduino).
Eine kleine Arduino-Schaltung stellt ein LC-Display bereit, auf dem Meldungen angezeigt werden, die von einem AutoIt-Script verschickt werden.
Was brauchen wir an Hardware:
1. Ein Steckbrett
2. Ein Arduino Nano (oder China-Clone) reicht völlig aus
3. Ein 4x20 Zeichen LCD mit I2C-Interface (z.B. das hier: https://www.amazon.de/AZDelive…fRID=R5VCX62DR4AE9ZQ93QK9)
4. Einen von diesen kleinen PushButtons (Taster), die man gut auf das Steckbrett stecken kann.
5. Einen Piezo-Summer (siehe Fritzing-Bild oder auch diese kleinen steckbaren Piezos). Keinen Lautsprecher! Der Piezosummer muss schon beim anlegen der Spannung einen Piepton ausgeben.
6. Ein paar dieser Steckbrett-Strippen.
Kosten:
Alles zusammen geschätzte 20 - 25 € (je nachdem wo man einkauft oder ob man bereits etwas davon hat).

Ich habe mal mit Fritzing einen "Schaltplan" erstellt:
   
Das Display dort ist ein 2x16 Zeichen-Display. Wird aber ebenso über I2C angesteuert. Ist also von der Verkabelung völlig identisch. Das muss man nur in der Software anpassen.
Das obige 4x20 Zeichen-Display benutze ich und das braucht (bei eingeschalteter Hintergrundbeleuchtung) ca. 32mA. Somit kann man die ganze Schaltung noch vom Nano versorgen (über das USB-Kabel).
An der I2C-Zusatzplatine befindet sich ein kleines Poti, mit dem man den Display-Kontrast einstellen kann. Falls auf eurem Display also nichts zu sehen ist, mit einem kleinen Schraubendreher das Poti etwas verstellen.
Der PiezoSummer piept bei einer neuen Nachricht (das Display wird hell und zeigt die Nachricht) und der PushButton (Taster) ist zum bestätigen der eingetroffenen Nachricht (schaltet dann das Display wieder dunkel).

Software:
Im ZIP-Archiv "NewsDisplay_Arduino.zip" befindet sich das Programm für den Arduino (inkl, meiner PushButton-Klasse zum entprellen).
Im ZIP-Archiv "NewsDisplay_AutoIt.zip" befindet sich das AutoIt-Programm (inkl. meiner SerialComm-UDF).
Beim AutoIt-Script müsst ihr noch den COM-Port anpassen (je nachdem, welchen Port euer Nano belegt).
Die Baudrate muss in beiden Programmen gleich sein. Bei mir hat es mit hohen Baudraten (>19200) nicht funktioniert. Mit 19200 läuft es aber stabil. Zur Not könnt ihr auch auf 9600 runtergehen.
Mit 19200 Baud dauert die Übertragung von 4 Zeilen je 20 Zeichen ca. 57 ms.
Das AutoIt-Script ist wohl weitgehend selbsterklärend. Das Arduinoprogramm habe ich ausführlich kommentiert.

Ihr könnt die Programme nach euren Vorstellungen anpassen oder als Vorlage für Größeres nehmen.
Ich bin mal gespannt, auf was für Ideen ihr kommt, wofür man das Display verwenden kann. Smile 

Edit 14.01.2019:
- Das Arduino-Programm ist jetzt ohne "delay" beim Piepton.
- Man kann jetzt einstellen, wie viele Pieptoene ausgegeben werden sollen.
- Außerdem kann man die Piepton- und die Pieptonpausenzeit einstellen.
- Die interne LED (an Pin 13) blinkt jetzt zusammen mit den Pieptönen.
- Und der Arduino sendet ein "ok" zurueck, wenn die Nachricht angekommen ist.
- Auf der AutoIt-Seite habe ich noch ein AutoIt-GUI-Script als Beispiel geschrieben. Das empfängt dann auch das "ok" und zeigt es in der Statuszeile an.
- Dort kann man auch den Arduino-COM-Port aus einer Liste der vorhandenen COM-Ports auswählen (Combo-Select).

Edit 16.01.2019:
- Das neue Arduino-Programm ("NewsDisplayMulti_Arduino_v1_1.zip") kann jetzt bis zu 15 Nachrichten speichern. Mit dem Pushbutton kann man die letzte Nachricht löschen. Es wird dann die vorherige Nachricht angezeigt (falls vorhanden).
- Durch das puffern der Nachrichten kommt die I2C-LCD-Anzeige nicht mehr dazwischen und somit sind jetzt auch schnellere Schnittstellen-Geschwindigkeiten möglich (z.B. 115200 Baud).
- Wenn der Nachrichtenspeicher voll ist, wird das als Status an das AutoIt-Programm zurückgeschickt.
- Beim Start (bzw. Reset) des Nano wird nun die Versionsnummer, die Schnittstellengeschwindigkeit und die Anzahl der speicherbaren Nachrichten angezeigt.
- Im neuen AutoIt-Programm ("NewsDisplay_AutoIt_v1_1.zip") kann man nun auch die Schnittstellengeschwindigkeit auswählen.
- Außerdem zeigt es die neuen Statusmeldungen an, sowie die Übertragungsdauer (in ms).



Angehängte Dateien
.zip   NewsDisplay_AutoIt.zip (Größe: 4,2 KB / Downloads: 1)
.zip   NewsDisplay_Arduino.zip (Größe: 3,3 KB / Downloads: 1)
.zip   NewsDisplay_AutoIt_v1_1.zip (Größe: 4,35 KB / Downloads: 1)
.zip   NewsDisplayMulti_Arduino_v1_1.zip (Größe: 4,21 KB / Downloads: 1)
Drucke diesen Beitrag

Information GIF-Animation mit den neuen AutoIt-Funktionen
Geschrieben von: Gorathan - 06.01.2019, 16:38 - Forum: Scripte - Keine Antworten

Seit der AutoIt-Version 3.3.14.3 (glaube ich) gibt es ja ein paar zusätzliche GDI+ Funktionen.
Damit kann man ganz gut GIF-Animationen in eigenen GUIs nutzen. Bei dem Beispielscript (siehe Anhang) habe ich mal das transparente GIF aus dem alten Thread über ein Hintergrundbild gelegt.
Außerdem wird es jetzt mit "_WinAPI_BitBlt" in die GUI geblittet. Das ist noch etwas schneller.
Es gibt auch noch einen Pause-Button und im Pause-Modus dann einen Einzelschrittmodus. Zusätzlich wird die Größe und die Anzahl der GIF-Frames angezeigt, sowie die Durchschnittszeit, die AutoIt braucht, um den Frame anzuzeigen.
Auf meinem Rechner sind das ca. 14ms pro Frame.
Die GIF-Animation und das Hintergrundbild befinden sich BASE64-kodiert am Ende des Scripts.



Angehängte Dateien
.au3   GIF-Anim.au3 (Größe: 688,16 KB / Downloads: 4)
Drucke diesen Beitrag