/*********************** ATmega328P und 16MHz CPU-Takt *********************** V1.1 - Spannungshysterese zum Schalten des LEDPIN - Atomic Absicherung gegen Verfälschung von uint16_t adc_wert durch etwaige Unterbrechung (warum auch immer) während uint16_t Vergleich durch ISR(ADC_vect) - Ermittlung der ADC-Min-Max-Werte über eine volle 50 Hz Netzperiode - Entprellung der Schaltschwelle V1.0 Pseudocode Messung der Spannung eines 48V LiFePO4-Akkus an seinen Polklemmen mit ATmega328P und 16MHz CPU-Takt Spannungsteiler zur Messung der Batteriespannung: R1 = 100 kOhm, R2 = 1,8 kOhm, C2_block 100 nF ..
Beim hochladen der .ino mit der Arduino IDE ist der Nano ESP ziemlich zickig. Zum üben würde ich eher ein "normales" ESP32-Modul nehmen.
Fred F. schrieb im Beitrag #8106536: > Beim hochladen der .ino mit der Arduino IDE ist der Nano ESP ziemlich > zickig. Das hört sich nach einer unsystematischen Vorgehensweise an. Kannst du dein Problem damit vielleicht etwas genauer beschreiben? Hier
/* Pseudocode Messung der Spannung eines 48V LiFePO4-Akkus an seinen Polklemmen mit ATmega328P und 16MHz CPU-Takt Spannungsteiler zur Messung der Batteriespannung: R1 = 100 kOhm, R2 = 1,8 kOhm, C2_block 100 nF ... 10µF zur Glättung Mit ADCref = 1,1V ergibt sich rechnerisch ein Spannungsmessbereich von 0 V ... 62,2 V. Das sollte mit einem guten Multimeter bei unbelastetem Akku kalibriert werden, bevor UBATTLOW_LIM berechnet wird. Wichtig: ein ADC-Wert = 1023 entspricht dann einer Spannung von rechnerisch 62,14 V und nicht 62,2 V! Berechnung von UBATTLOW_LIM (z.B. 45V): -> UBATTLOW_LIM = 45V * 1024
/* Die Spannung eines Potis wird mit 16 abgestuften Spanungswerten 0 -> VCC am PWM-Ausgang ausgegeben; dazu muß ein RC-Filter ergaenzt werden. Die Stellung des Potis muß zuvor ueber 80 ms stabil sein und wird mit einer Hysterese ausgewertet, damit der Ausgangswert nicht 'wackelt'. Verwendete Hardware: Arduino UNO mit ATmega328 http://www.mino-elektronik.de Alle Angaben ohne Gewaehr ! 2025-10-17 */ #include <avr/io.h> #include <avr/interrupt.h> #include <stdlib.h> #define BIT(x) (1<<x) #define F_CPU 16000000L // 16MHz ggf. an eff.Frequenz anpassen #define T1_VORTEILER 8 #define PRO_SEKUNDE 100 /
Hardware habe ich einen Ardiuno UNO R3 verwendet. Falls es irritieren sollte: das Programm ist trotz .ino-Endung in C geschieben, < 1kB groß und kann einfach auf einen ATtiny44 gebracht werden.
kompatibel. Die Arduino-Sketch zum Code-Auslesen heißt arduino_modified_sketch_868702\AllProtocols.ino Wenn es ein NEC-Code ist, kann man es auch mit den universellen Bauteiltestern "Transistortester 328" mit eingebautem IR-Empfänger dekodieren und die Codes auslesen.
schon sehr beeindruckend, wie zügig das alles funktionierte. Wenn es interessiert stelle ich die ino-Datei hier mal ein.
Lutz S. schrieb im Beitrag #8103023: > Wenn es interessiert stelle ich die ino-Datei hier mal ein. Hallo Lutz, ja das wäre Interessant und auch eventuell Bilder vom Aufbau und ein Schaltplan dazu. Wäre nett von Dir. Gruß und schönes Wochenende allen. bastler2022
// ArduinoISP // Copyright (c) 2008-2011 Randall Bohn // If you require a license, see // https://opensource.org/licenses/bsd-license.php // // Note that this sketch refers to the SPI bus pins using the legacy MISO/MOSI // names rather than the modern CIPO/COPI names. // For further details, see https://docs.arduino.cc/learn/communication/spi // // This sketch turns the Arduino into a AVRISP using the following Arduino pins: // // Pin 10 is used to reset the target microcontroller. // // By default, the hardware SPI pins MISO, MOSI and SCK are used to communicate // with the target. On all Arduinos
#include <SD.h> #include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h> #include <TinyGPS++.h> // Pins definieren const int GPS_PPS_PIN = 2; // PPS-Signal vom GPS für Sekundentakt const int LICHTSCHRANKE_PIN = 3; // Signal von der Lichtschranke const int SD_CS_PIN = 10; // Chip Select für SD-Kartenleser // Speicher-Intervall für die Lichtschranke (jeder 1800. Impuls) const unsigned long SPEICHER_INTERVALL_IMPULSE = 1800; // Instanzen TinyGPSPlus gps; Adafruit_BME280 bme; // Volatile Variablen für die Interrupts volatile unsigned long ppsMicrosRef = 0; // Systemzeit der letzten GPS-Sekunde
Hier ist ein einfacher und effizienter Arduino-Sketch, der einen digitalen Eingang (Port) abfragt. Sobald dieser Port zum dritten Mal ein HIGH-Signal registriert hat, verzweigt das Programm in einen speziellen Code-Abschnitt.Damit ein einzelner Tastendruck nicht fälschlicherweise als Mehrfachklick gezählt wird, enthält der Code eine einfache Entprellung (Debounce), die darauf wartet, dass das Signal erst wieder LOW wird, bevor der nächste Impuls gezählt wird.cpp// Pin-Definitionen const int eingangsPin = 2; // Der Port, der abgefragt wird const int ledPin = 13; // Beispiel-Ausgang (Interne LED) // Variablen
const int GPS_PPS_PIN = 2; // PPS-Signal vom GPS für Sekundentakt const int LICHTSCHRANKE_PIN = 3; // Signal von der Lichtschranke // Volatile Variablen für die Interrupts volatile unsigned long ppsMicrosRef = 0; // Systemzeit der letzten GPS-Sekunde volatile unsigned long eventMicros = 0; // Systemzeit des 1800. Impulses volatile unsigned long eventPpsRef = 0; // PPS-Referenzwert beim 1800. Impuls volatile bool eventTriggered = false; unsigned long gesamtImpulsZaehler = 0; // Interrupt-Service-Routine für den präzisen GPS-Sekundentakt (Pulse Per Second) void ppsISR() { ppsMicrosRef = micros(); }
#include <SD.h> #include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h> #include <TinyGPS++.h> // Pins definieren const int GPS_PPS_PIN = 2; // PPS-Signal vom GPS für Sekundentakt const int LICHTSCHRANKE_PIN = 3; // Signal von der Lichtschranke const int SD_CS_PIN = 10; // Chip Select für SD-Kartenleser // Speicher-Intervall für die Lichtschranke (jeder 1800. Impuls) const unsigned long SPEICHER_INTERVALL_IMPULSE = 1; // Instanzen TinyGPSPlus gps; Adafruit_BME280 bme; // Volatile Variablen für die Interrupts volatile unsigned long ppsMicrosRef = 0; // Systemzeit der letzten GPS-Sekunde
#include <SD.h> #include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h> #include <TinyGPS++.h> // Pins definieren const int GPS_PPS_PIN = 2; // PPS-Signal vom GPS für Sekundentakt const int LICHTSCHRANKE_PIN = 3; // Signal von der Lichtschranke const int SD_CS_PIN = 10; // Chip Select für SD-Kartenleser // Speicher-Intervall für die Lichtschranke (jeder 1800. Impuls) const unsigned long SPEICHER_INTERVALL_IMPULSE = 1800; // Instanzen TinyGPSPlus gps; Adafruit_BME280 bme; // Volatile Variablen für die Interrupts volatile unsigned long ppsMicrosRef = 0; // Systemzeit der letzten GPS-Sekunde
// Fernbedienung für Velux WLC100 // LCD/Keypad Shield an D4 D5 D6 D7 D8 D9 und A0 // IR-Sendediode über Treibertransistor an D3 // 16MHz Keramikresonator oder Schwingquarz #include <LiquidCrystal.h> // ============================================================ // Globale Variablen // ============================================================ int m = 1; // welcher Motor des Fensters, 1-3 Manual, 4-6 = 1-3 Auto int f = 0; // welches Fenster, 0=All, 1-10 // ============================================================ // LCD 16x2 Keypad Shield // ==============================================
Deshalb habe ich die .ino.cpp weiter oben drangehängt. Das müsste der Output des Compilers sein, bei dem nur der PP (PräProcessor) durchlaufen wird, wenn ich es richtig interpretiert habe. Ich werde mir die von Dir genannten
Die FW Version 1.02x stammt aus einer anderen Quelle und ist etwas besser strukturiert, was den .ino Code angeht. Es gibt einzelne Header-Files, die entsprechende Features abdecken und die .ino Datei die dadurch etwas kürzer und übersichtlicher ausfällt. Ich hoffe Du kannst meinen Ausführungen
Die habe ich schon, muss ich nur installieren, wenn in den nächsten Tagen der Arduino kommt. Für INO-Files eignet sich aber auch Notepad++.
René H. schrieb im Beitrag #8095762: > Für INO-Files eignet sich aber auch Notepad++. Notepad++ wird dir daraus wohl kaum einen File bauen, mit dem der Arduino irgendetwas anfangen kann.
Zeitraum. Der entsprechend angepasste Source Code ist im Anhang, er basiert auf "sketch_sep10a.ino" von weiter oben. Sollte "sketch_sep10a.ino" nicht mehr aktuell sein muss man den Code anpassen. Der Code im Anhang misst jede Pendelschwingung und gibt auch noch die Eventzeit in µs aus (nicht nur
stur. > Der entsprechend angepasste Source Code ist im Anhang, er basiert auf > "sketch_sep10a.ino" von weiter oben. Sollte "sketch_sep10a.ino" nicht > mehr aktuell sein muss man den Code anpassen. > Der Code im Anhang misst jede Pendelschwingung und gibt auch noch die > Eventzeit in µs aus
2.3.10
File Edit Sketch Tools Help
LIBRARY MANAGER
Filter your search...
Type: All
Topic: All
Blink1.ino
21
22 https://docs.arduino.cc/built-in-examples/basics/Blink/
23 /*
24 // the setup function runs once when you press reset or power the board
25 void setup() {
26 // initialize digital pin LED_BUILTIN
USB-Port des PCs, auf dem ich Arduino-IDE öffne. Dann suche ich im Filemenü "Sketchbook" "blink1.ino" aus. Bild Arduino_01 Dann gehe ich über Menü "Tools" auf Ports und klappe den richtigen (Port 3) auf. Bild Arduino_02 Wenn da nichts angeschlossen ist, kommt Fehlermeldung "kein Port gefunden
zu starten. Vor allem, wenn man zwischendurch mit verschiedenen Boards bastelt. Der Import von * .ino Dateien hat auch noch etwas Besonderes. Es wird ein Verzeichnis angelegt, in das dann die * .ino gehört. Ist das irgendwo auf einem anderen LW oder Pfad, könnte die IDE das nicht akzeptieren. Es kommt
/* Bluetooth BLE Keyboard - Deutsches Tastaturlayout (QWERTZ) ESP32 wird per USB an den Sender-PC angeschlossen und sendet Tastenanschlaege per BLE an den Ziel-Rechner. Benutzung mit minicom (Linux) als Sender: minicom -D /dev/ttyUSB0 Hardware: ESP32 WROOM Framework: Arduino ESP32 Bibliotheken: https://github.com/HijelHub/HijelHID_BLEKeyboard https://github.com/h2zero/NimBLE-Arduino 2026-08-17 mchris (Claude support), Version für deutsche Tastatur */ #include <HijelHID_BLEKeyboard.h> HijelHID_BLEKeyboard keyboard("ESP32 Tastatur", "Deutsch", 100); // Sendet einen Unicode-Codepoint so, dass am Host
/* Bluetooth BLE Keyboard Use an ESP32 as Bluetooth keyboard. The ESP is connected to the sender PC via USB and sends keystrokes by BLE. Minicom as Key sender: minicom -D /dev/ttyUSB0 Hardware: ESP32 WROOM Framework Arduino ESP32 Libraries needed: https://github.com/HijelHub/HijelHID_BLEKeyboard https://github.com/h2zero/NimBLE-Arduino Inspired from https://class.academany.org/futures/cybersecurity/2026/labs/isafjordur/students/hanndoddi/cyber-road/lapboard/ 2026-08-13 initial version, mchris */ #include <HijelHID_BLEKeyboard.h> HijelHID_BLEKeyboard keyboard; void setup() { Serial.begin(115200);
sketch_jul25a.ino
void setup() {
// put your setup code here, to run once;
}
void loop() {
// put your main code here, repeatedly:
}
BOARDS MANAGER
esp32
Type: All
Arduino ESP32 Boards by Arduino
Boards included in this
Vernünftiges herauskommt, liegt es wahrscheinlich auch an der Software. Nimm ein anderes Programm: Blink.ino Ändere die Ausgabe auf den Wunsch-Pin. Vielleicht sind auch die Libraries nicht korrekt ausgewählt. ciao gustav
D2 dabei konfiguriert?" Für Dich noch mal etwas genauer formuliert. Antwort: Im Programmcode (.ino) gar nicht.
der Sketch kompiliert und im angegebenen Verzeichnis unter anderem eine .bin-Datei angelegt (Uhr_Neu.ino.bin). Diese kann nun über die Adresse http://<IP-Adresse der Uhr>:81/update auf die Uhr übertragen werden. 16/02/2019 S e i t e | 3 Quelle: https://github.com/Eisbaeeer/Ulrich-Radig_Wort_Uhr_Version
sys/fs/binfmt_misc type autofs (rw,relatime,fd=40,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=4404) mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime) tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k,inode64) hugetlbfs on /dev/hugepages type hugetlbfs
This example code is in the public domain. https://docs.arduino.cc/built-in-examples/basics/Blink/ */ // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(50); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(400); // wait for a second }
Fehler in der Phase. Der uSDX geht in der letzten auf Github veröffentlichten Version 1.02x der usdx.ino wie folgt vor: [c] static int16_t prev_phase; int16_t phase = arctan3(q, i); int16_t dp = phase - prev_phase; // phase difference and restriction prev_phase = phase; if(dp < 0) dp = dp + _UA;
sys/fs/binfmt_misc type autofs (rw,relatime,fd=37,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=6368) none on /run/credentials/systemd-journald.service type tmpfs (ro,nosuid,nodev,noexec,relatime,nosymfollow,size=1024k,nr_inodes=1024,mode=700,inode64,noswap) hugetlbfs on /dev/hugepages type
Im Anhang gibt es ein Archiv, in dem zum einen der Empfängersketch enthalten ist: stxlcdrecv_uart.ino sowie eine weitere gepackte Zip-Datei, die mittels der Libraryverwaltung on Arduino installiert werden kann. Jetzt bin ich am überlegen gewesen, ob ich jede einzelne Sourcedatei hier noch einmal
/* -------------------------------------------------------- stxuartlcd_demo_all.ino Demosketch:Ansteuerung eines HD44780 kompatiblen Displays, welches über "stxlcdrecv_uart" angesteuert wird. Verbindung wird ueber SoftwareSerial mit einer Baudrate von 4800 bd hergestellt 30.05.2026
/* -------------------------------------------------------- stxuartlcd_demo1.ino Demosketch:Ansteuerung eines HD44780 kompatiblen Displays, welches über "stxlcdrecv_uart" angesteuert wird. Zeigt Verwendung der originalen Arduino-Methoden print / println in Verbindung mit Einlesen
/* -------------------------------------------------------- stxuartlcd_demo0.ino Demosketch:Ansteuerung eines HD44780 kompatiblen Displays, welches über "stxlcdrecv_uart" angesteuert wird. Zeigt Verwendung der originalen Arduino-Methoden print / println in Verbindung mit Einlesen
ausschließlich dem Zweck dient, dieses Interface bereitzustellen. Die Firmwaredatei ist: stxlcdrecv_uart.ino Innerhalb dieser Datei ist eine Anpassung bezüglich der Anschlussbelegung Mikrocontroller und Display zu machen, damit ein fehlerfreier Betrieb möglich ist. // Anschluesse Textdisplay an Arduino static