µC

  • 1.9 🤩 Kurztests

    🍼 Einstiegsaufgaben 🍼 SP. Ein Startpieper 🛫 Nach druck auf Taster Start sollen drei tiefe und ein längerer hoher Ton auf einem Piezo-Lautsprecher ausgegeben werden. Während der Ausgabe des tiefen Tones leuchtet die LED LC0, beim hohen Ton LC1. Dieser Quellcode ist schon gegeben: 🍼 SP.1 Ergänzen Sie die fehlenden Teile! 🍼 LM. Leuchtmuster auf…

  • 3.7 MPPT (Maximum Power Point Tracking) bei Gartenleuchten-Zeug? (🚧)

    Ein Paket mit Werbegeschenken von Würth-Solar: Solar-Ladegerät für 2 NiMH Zellen brachte mich auf die (Schnaps-) Idee.Für viele (IoT-) Projekte brauche ich eine leistungsstarke Spannungsversorgung im Aussenbereich mit ordentlicher Gangreserve. LiIon-Akkus aus Mobiltelefonen oder Akkupacks ohne Balancer usw. liegen in der Bastelkiste. Solarmodule aus defekten Gartenleuchten ebenso. Könnte man diese Reste nicht sinnvoll weiter verwenden?…

  • 🚧 Mikrofon Module KY-037, KY-038 taugen nix

    Synopsis: KY-037 Hochempfindliches Mikrofon🔗 KY-038 Mikrofon Modul🔗 Für ein Instrumentenstimmgerät wollte ich eines dieser Module verwenden und wurde sehr enttäuscht.Kein Wunder, wenn man sich den Schaltplan🔗 anschaut.Auch erstaunlich, wie viele irreführenden Anleitungen es zu diesem Modul im Netz gibt, es wird viel “rumgedoktert”, statt sich klar zu machen, dass dieses Pferd so nie richtig leben…

  • 3.5 🚧 Smarte Gartenbewässerung selber bauen

    Wird noch lange Baustelle bleiben.. Ausgangssituation Gewächshaus, großer Gemüsegarten, zwei Zisternen (10500l und 2455l) mit druckgeregelten Pumpen, jeweils mit Sensoren für Durchfluß (eingebaut aber noch keine Ausleseung), Wetterstation mit Regensensor und Bodenfeuchtesensoren. Überwiegend Tropfbewässerung ca. 300 l/Tag. Gitter des Wasserabscheiders setzt sich zu Ich möchte benachrichtigt werden wenn das Gitter gereinigt werden muss.Daten aus Zisternenstand…

  • 2.0 🚧 Timer-Schmerzen?

    Angenommen, ich will PWM unterrichten und soll dabei auf die Hardware eingehen. Hier ein Versuch verschiedene µC dabei zu vergleichen: ATmega328P (Arduino Uno, Nano) ATmega328P DATASHEET🔗 S90 ff. Doku ist gut verständlich. Alter Unterricht: Timer und Pulsweitenmodulator STM32L152xx STM32L152xx Referenz Manual RM0038🔗 S383. System ist recht kompliziert, Doku ist nicht so leicht zu verstehen.. STM32-Timer-Hardware…

  • STM32F401-Blackpill (🚧)

    Synopsis: AZ-Delivery STM32F401 Development Board V 3.0🔗 Habe es endlich geschafft, das Board unter Arduino auf MacOS zum laufen zu kriegen. Problem war das richtige Vorgehen beim Aktivieren des DFU-Modus.Beim AZ-µC ist ein WeAct-Bootloader installiert, um auf den benötigten STM32 Bootloader zu kommen muss die DFU-Bootloader-Prozedur zweimal durchgeführt werden! Nach Anleitung AZ-Delivery E-Book Deutsch🔗 wird…

  • 6.0 Projektideen mit Arduino 🚧

    Kleine Spiele Reaktionsspiel: Wer ist schneller? Drei Tasten: Start, Spieler1, Spieler2. Eine LED und oder ein Lautsprecher. Eine Anzeige für die Reaktionszeit (7-Segment, Servo, Schrittmotor).Nach Start leuchtet nach einer zufälligen Zeit eine LED auf bzw. ein Ton wird ausgegeben, wer zuerst auf seinen Taster drückt hat gewonnen, der Taster leuchtet und die Zeit wird angezeigt….

  • 5. 🚧 Hardware trifft Software mit Processing

    Synopsis: [ 🔗 https://processing.org] [🔗 Processing Cheat Sheet] Einstieg mit Poti auslesen Der Poti auf dem Expansion Board wird ausgelesen und als zwei Byte über die Serielle Schnittstelle verschickt. Mit Processing werden die Daten empfangen und angezeigt Processing Sonar Synopsis: [🔗 https://www.youtube.com/watch?v=uO3mTJZ2Vyc ] Servo an Expansion Board anschließen, Ultraschallsensor an PA10 und PC9. Mit Processing…

  • 3.3 🕺 Schrittmotor 🚧

    Synopsis: [funduino.de/nr-15-schrittmotor] [de.wikipedia.org/wiki/Schrittmotor] [https://mezmedia.de/technische-informatik/digitaltechnik/2-4-schaltwerke-bauen/#schrittmotor] [🔗 youtube.com/watch?v=draBqtk7BKY] In einer idealen Welt passt alles einfach zusammen: Prima Video erklärt wie der im Unterricht verwendete Schrittmotor aufgebaut ist und funktioniert [Sehr genaue Beschreibung: 🔗 28BYJ-48 Schrittmotor für Profis auf Youtube]. SuS können mit Digital die drei Ansteuerungsarten ausprobieren (siehe unten: Simulation mit Digital). Der Anschluß an den µC…

  • 1.1o 🚧 Oszilloskopieren

    Synopsis: [de.wikipedia.org/wiki/Oszilloskop]Ein Oszilloskop auch liebevoll Oszi genannt ist das (zweit) wichtigste Messgerät eines IT-Bastlers. Dabei werden Signale im zeitlichen Verlauf graphisch dargestellt. Wenn viele digitale Signale gleichzeitig gemessen werden sollen gibt es Logic-Analyzer. Zeiten mit Oszilloskop messen Wie schnell kann ausgegeben werden? Die LED an D13 (PA5) so schnell wie möglich blinken lassen.Das Signal mit…

  • 3.9 🦷 Bluetooth 🚧

    Synopsis: [Heise: Bluetooth: Auf den blauen Zahn gefühlt] Bluetooth-Probleme Update: iOS-Software BitBlue gibt es nicht mehr, damit verschwindet aber auch das Problem mit dem Funduino-Modul, habe zwei Ersatzlösungen gefunden! HC-05 Modul Ich habe das AZ-Delivery HC-05 6-Pin Modul unter iOS und macOS ausprobiert: Da es sich um klassisches Bluetooth handelt ist eine Paarung mit Passwort…

  • 1.7 💯 PWM (PulsWeitenModulation)

    Synopsis: [de.wikipedia.org/wiki/Pulsdauermodulation 🔗]Wieder so ein “explosives” 🧨 Thema! Sobald man sich näher damit beschäftigt kann es spannend aber auch kompliziert werden… Aufgaben Arduino: analogWrite() Lesen: [arduino.cc/reference/en/language/functions/analog-io/analogWrite/ 🔗] [docs.arduino.cc/learn/microcontrollers/analog-output/ 🔗] Die Helligkeit der LED an PC7 soll durch den low-aktiven prellfreien UserButton an PC13 in den Stufen0% -> 25% -> 50% -> 75% -> 100% ->…

  • 1.6 ⏱️ Frequenz, Perioden- und Impulsdauer messen

    [de.wikipedia.org/wiki/Frequenz 🔗] Die Frequenz f eines Signals ist die Anzahl der Wiederholungen pro Sekunde.Im Beispiel ein Rechtecksignal. Die Periodendauer T ist dabei z.B. die Zeit von steigender zur steigender Flanke. Um die Frequenz zu messen kann z.B. die Anzahl der steigenden Taktflanken in einer Sekunde gezählt werden.Bei niedrigen Frequenzen wird eher die Periodendauer T gemessen.Oft…

  • ESP32

    Simulation mit WOKWI [wokwi.com/projects/387000682507243521 🔗] NodeMCU-ESP32-S-Dev-Kit [AZ-Delivery NodeMCU-ESP32-S-Dev-Kit 🔗]Preis/Stück (3x) 10,67€UART-Wandler CH340 ESP32 Dev Module auswählen ESP32S Dev Kit C V4 NodeMCU WLAN [AZ-Delivery ESP32S Dev Kit C V4 NodeMCU WLAN 🔗]Preis/Stück (3x Angebot) 7€UART-Wandler CH340 ESP32 Dev Module auswählen ESP32 DevKitC V2 ESP32-WROOM-32 [AZ-Delivery ESP32 NodeMCU Dev Kit C V2 with CP2102🔗]Preis/Stück (5x Angebot)…

  • 1.1p print, printf, sprintf (🚧)

    Formatiertes Ausgeben von Werten print Arduino-Doku: Serial.print()🔗 printf, sprintf Tests mit Java Ausgabe Test mit Arduino STM32 Bei dem Testprogramm wird ab Floating Point normalerweise nur noch Mist ausgegeben!Das liegt daran, dass die Verarbeitung von Fließkommaformatierungen recht viel Programmspeicher (ca. 2,5 KiByte) benötigen würde und bei den kleinen µC dies vermieden werden sollte, so wurde…

  • 1.1d 🚧 C Datentypen für Arduino

    Einfache Datentypen Die Tabelleninhalte wurden für STM32 Arduino mit Testsoftware ermittelt. Es gibt Unterschiede in der Interpretation der Datentypen bei verschiedenen Compilern und µCs. In C/C++ hat es daher zusätzliche Datentypen, mit denen Vorzeichenbehaftung und Bitbreite compilerunabhängig festgelegt werden können. Datentyp #Bits #Werte Wertebereich entspricht Bemerkung bool 8 2 false (=0), true (≠0) char (ist…

  • Y 🚧 Abi Musteraufgaben

    1 BCD-Uhr Eine BCD-Uhr mit LCD- und Matrixanzeige soll realisiert werden. Vorgegebener Code / Info Hinweis: Fehler in der Formelsammlung bei formatierter Ausgabe:, verwenden Sie bei sprintf statt I2C_LCD(buf) lcd.print(buf) zur Ausgabe.Eine formatierte Ausgabe kann bei STM32 auch mit lcd.printf(…) ohne Buffer erfolgen.Darüber hinaus sind wir es gewohnt Variablen klein zu schreiben. Kleinschreibung bei std,min,sec…

  • 🍀 STM32 nucleo L152RE

    Synopsis: [stm32l152re-Überblick] [Referenz-Manual RM008] [Datenblatt stm32l152re] [API stm23duino] [UM1724 User manual] Beschafft bei reichelt.de Draufsicht Platine Grüne LED an PA5 (D13) , Blauer UserButton an PC13 (low active) mit PullUp-Widerstand und ist entprellt. Pin Belegung Pinout User-Button entprellt low active Der blaue Taster ist der entprellte low aktive UserButton, an PC13 angeschlossen. Leider finde ich…

  • 3.8 🍀 SPI Schnittstelle

    Synopsis: [az-delivery.de/products/saleae-logic-analyzer][mikrocontroller.net/articles/Serial_Peripheral_Interface][mikrocontroller.net/articles/SPI_Daisychain][docs.arduino.cc/learn/communication/spi][analog.com/media/en/technical-documentation/data-sheets/MAX7219-MAX7221.pdf][learn.sparkfun.com/tutorials/serial-peripheral-interface-spi/all][ti.com/lit/ds/symlink/sn74hc595.pdf] 1. Funktionsprinzip der SPI-Schnittstelle SPI bedeutet Serial Peripheral Interface und dient hauptsächlich zur seriellen Datenübertragung von einem µC zu einer Peripherie und von der Peripherie zum µC. Die Datenübertragung wird durch einen Master/Controller gesteuert. Er gibt den Takt der Übertragung über eine Leitung SCK (Serial Clock) und wählt über eine Leitung CS/SS (Chip…

  • Logic Analyzer

    Als preisgünstige Alternative (ca. 8€) zum Analog Discovery Studio könnte für SuS dieses Gerät dienen: Logic Analyzer 8 CH, 24MHz mit USB-Kabel, kompatibel mit Arduino Software PulseView von Az-Delivery empfohlen: sigrok.orgSoftware Logic2 von Kollegen empfohlen: https://www.saleae.com/pages/downloads 🔗wolles-elektronikkiste.de/logic-analyzer 🧐 CLK-Ausgang verstehe ich nicht Bei den neueren Analyzern gibt es einen neuen Pin CLK, ich habe das…

  • Funduino Expansion Board für NUCLEO STM32 (Sturm Board)

    Link zum Produkt: [Funduino Expansion Board für NUCLEO STM32] Es wird noch ein NUCLEO-Board z.B. L152RE benötigt, ist nicht enthalten. Boardbeschreibung Schaltplan LED-Anzeigen An PC0..PC7 sind 8 farbige LED angeschlossen, ausserdem zwei 7-Segmentanzeigen. Die Einerstelle wird mit PC11 und die Zehnerstelle mit PC12 aktiviert. Um die Funktion zu verstehen ist hier eine Simulation mit Logiksimulator…

  • 1.1b 🚧🏋️ Bitschubserei

    Synopsis: [MezData: Ausdrücke und Operatoren] [SPS-Logik-Simulation] Sobald mehrere Port-Pins auf einmal gelesen oder gesetzt werden sollen wird es mit digitalWrite() und digitalRead() umständlich, ausserdem brauchen diese Operationen deutlich länger als der direkte Zugriff über die Portregister.Hinweise: Zur Veranschaulichung habe ich hier unsigned char a; // 8 Bit ohne Vorzeichen (uint8_t) verwendet. In den [] Klammern…

  • 1.1s 🚧 Spickzettel

    Sammlung für die lokale Formelsammlung 🤠. Beispielsketch Sketch nennt man bei Arduino die Entwürfe für ein Programm. Ein Sketch ist eine Textdatei z.B. “Beispiel” mit der Endung .ino also Beispiel.ino. Die Datei muss sich in einem gleichnamigen Ordner hier Beispiel befinden. Dafür #define Synopsis: C-Präprozessor📖 Präprozessor-Direktiven🔗.Die Pins am µC haben Bezeichnungen wie D13 oder PC13….

  • 1.1x STM32 GPIO Ports

    Hier eine etwas vereinfachte Betrachtung, für Details Doku lesen: [Referenz Manual rm0038 S183ff.] [Datenblatt stm32l152re S92] [STM32-API] Prinzip-Schaltbild für einen I/O-Pin Veranschaulichung I/O Pin Teilschaltung mit Digital Einstieg in die Vielfalt der Einstellmöglichkeiten. Jeder Pin kann als General Purpose Input/Output  (Allzweckeingabe/-ausgabe) oder mit einer alternativen Funktion verwendet werden. Im Vergleich mit dem oberen Blockschaltbild fehlen…

  • 3.6 UART / RS232 (🚧)

    Synopsis: [🔗 de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter] [🔗 https://reference.arduino.cc/reference/en/language/functions/communication/serial/]Nochmal anschauen: 2.6 Schieberegister Ist die älteste und schwierigste einfache Serielle Schnittstelle. Die Datenübertragung erfolgt asynchron (eine Baud-Rate muss eingestellt werden) und hat Start- und Stopp-Bits ausserdem kann ein Paritätsbit übertragen werden. Es ist die elementare serielle Schnittstelle für Arduino, darüber werden viele der Boards programmiert und darüber wird mit dem…

  • 3.7 ⎐ I2C Schnittstelle

    Einlesen in die Theorie der Schnittstelle Befehl / Beispiel Beschreibung #include <Wire.h> // I2C-Library I2C Library laden Wire.begin();Wire.begin(SDA, SCL); // Alternative Leitungen festlegen Schnittstelle starten Wire.setClock(frequenz); Optional die Übertragungsfrequenz anpassen, voreingestellt sind 100000 Hz siehe [Arduino-Doku] Schreiben in Baustein Adresse des Bausteins angeben und mit Wire.write() in einen Puffer schreiben, am Ende Daten absenden aus…