Schlagwort-Archive: Arduino

BitBastelei #177 – 7-Segment-„Cloud“-Anzeige (1/2)

BitBastelei #177 - 7-Segment-"Cloud"-Anzeige (1/2)

(177 MB) 00:23:05

2015-12-20 11:00 🛈

Was macht man, wenn man ein paar 7-Segment-Anzeigen mit 7cm Höhe bekommt? Basteln natürlich!

Part 1:
– 7-Segment-Anzeigen: Typen, Aufbau, …
– Ansteuerung per Matrix

Ähnliche Projekte:
GreatScottLabs: https://www.youtube.com/watch?v=xpdpDo-gR3Q
SDGEE: https://www.youtube.com/watch?v=Ov27rac0tP0

BitBastelei #176 – ESP8266 mit der Arduino IDE

BitBastelei #176 - ESP8266 mit der Arduino IDE

(175 MB) 00:23:03

2015-12-06 11:00 🛈

Bereits in der Vergangenheit hatten wir mal den ESP8266: Ein kleiner, günstiger Mikrocontroller, welcher durch hohe Leistung und integriertes WLAN besticht. Inzwischen lässt dieser sich auch über die Arduino-Oberfläche programmieren. Am Beispiel eines ESP-201-Moduls schauen wir uns die Verkabelung, Bootmodi und Programmierung an.

ESP-01: Versionen beachten!

Die ersten ESP-01 hatten nur die Pins VCC, GND, RxD und TxD verbunden, alle anderen Pins waren nicht angeschlossen. Diese Version kann ohne Umbau nicht neu Programmiert werden. Die Aktuell verkaufte Version 2 ist wie angegeben verbunden.

ESP-201: Antennenauswahl

Standardmäßig wird der ESP-201 in einer Form ausgeliefert, welche zwingend eine externe Antenne am U.FL-Anschluss erfordert. Um die interne Antenne zu nutzen muss der 0?-Widerstand neben dem Antennenverbinder um 90° gedreht werden.

Bild: https://www.adlerweb.info/blog/wp-content/uploads/2015/12/antenna-300×162.png

ESP-201: Verkabelung zur Programmierung

ESP-201: Zusätzliche GPIO nutzbar machen

Standardmäßig greift das Modul auf den Flash-Chip mit der Firmware im Quad-IO (QIO) – also mit 4 Datenleitungen – zu. Kann man in seiner Anwendung auch eine langsamere Flash-Geschwindigkeit tolerieren lässt sich die Verbindung auf 2 Leitungen (Dual-IO, DIO) reduzieren und so GPIO gewinnen. Hierzu muss der Flash-Chip entlötet, dann die Pads der Pins 3 und 7 entfernt oder aufgetrennt werden. Zuletzt wird der IC wieder montiert, hierbei werden die nun freien Pins 3 und 7 mit Vcc verbunden. Nun kann man IO9 (D2) und IO10 (D3) nutzen.

Eine bebilderte Anleitung auf Englisch findet sich bei smarpl.com.

Pinouts / Cheat Sheets

(siehe auch: Deviantart)

Weitere Ressourcen

Arduino IDE
ESP8266 Arduino Core
Infos bei smarpl.com (EN)
ESP8266 NodeMCU/LUA
Bildressourcen @ openclipart

BitBasics – 74xx595 – Schieberegister

BitBasics - 74xx595 - Schieberegister

(314 MB) 00:11:38

2015-11-29 11:00 🛈

(english further down) Hier schauen wir auf die Funktionsweise des Schieberegisters 74HC595, welches genutzt werden kann um die Anzahl der Ausgänge zu erhöhen

Wenn man eine große Anzahl Ausgänge ansteuern will sind Schieberegister wie der 74HC595 meist eine gute Wahl. Mit nur wenigen Pins der Steuerung kann man acht Ausgänge verwalten. Der Clou: Man kann diese ICs hintereinanderschalten und so ohne weitere Pins zur Ansteuerung zu benötigen die Anzahl der Ausgänge immer weiter erhöhen.

BitBasics – 74xx595 – Schieberegister weiterlesen

BitBastelei #173 – Arduino Solar-Monitor

BitBastelei #173 - Arduino Solar-Monitor

(286 MB) 00:34:45

2015-11-08 11:00 🛈

Vor etwas längerer Zeit hatte ich einen USBASP mit ATMega8 zusammen mit diversen Stromsensoren ein Solarmonitoring gerbaut. Bis auf etwas bessere Befestigungen lief das System bisher fehlerfrei, jedoch muss nur für das Monitoring ein Netbook laufen um die Daten per USB anzunehmen und auf den Netzwerkanschluss weiterzuleiten. Da ohnehin eine Erweiterung ansteht machen wir es direkt richtig: Der USBASP wird durch einen deutlich größeren ATMega ersetzt, mit mehr Strom- und Spannungssensoren versorgt und erhält letztendlich eine passende Netzwerkkarte um die Daten ohne Umweg an meinen Server zu senden.

BitBastelei #169 – Hausbus: PCB-Prototyp

BitBastelei #169 - Hausbus: PCB-Prototyp

(218 MB) 00:18:33

2015-10-11 10:00 🛈

Im letzten Video hatte ich es ja schon angekündigt: Die ersten Boards sollen kommen. Tja, nun ist es soweit, also schnell zusammenlöten und schauen, dass alles passt. Selbstverständlich nicht ohne Besuch von Murphy.

Arduino: boolean vs. byte

Möchte man einen einfachen Status im an/aus-Format notieren ist üblicherweise ein Boolean der Dateityp der Wahl. Technisch gesehen unterstützt der bei Arduino verwendete ATMega jedoch immer nur 8-Bit-Register, sodass auch ein Boolean (1-Bit-Wert) intern meist als Byte (8-Bit-Wert) abgespeichert wird. Klingt nicht sehr effizient, aber kann man per Hand tatsächlich „besser“ arbeiten?

Gehen wir von einem einfachen Beispiel aus: Wir möchten mehrere dieser Zustände speichern und auf deren Basis eine Entscheidung treffen. Für dieses Beispiel wird der Wert immer invertiert – in diesem Fall könnte man es auch kompakter Lösen, aber da es nur als Platzhalter für komplexeren Code gilt lasse ich das mal so stehen. Alle Beispiele sind Auszüge eines größeren Programms, die absoluten Größen also ohne weitere Aussagekraft.

Erster Versuch: Mit Boolean

boolean dir1 = false;
boolean dir2 = false;
boolean dir3 = false;
//[...]
if(dir1) {
  //Aktionen
  dir1 = false;
}else{
  dir1 = true;
}

//23.644 Byte Flash, 1.537 Byte RAM

Zum Vergleich mit einem einzigen „byte“-Wert, dessen einzelne Bits als Informationsspeicher verwendet werden sollen:

byte dir = 0x00;
//[...]
if(dir & 0x01) {
  //Aktionen
  bitSet(dir, 0x01);
}else{
  bitClear(dir, 0x01);
}

//23.650 Byte Flash, 1.535 Byte RAM

Schaut man auf das eigentliche Programm gewinnt die Variante mit Boolean – 6 Byte kleiner. Nicht wirklich verwunderlich – hat man ein ganzes Byte müsste sich direkt ein Sprung bei !=0 durchführen lassen. Mit Byte-Teilen ist ein Vergleich oder ein vorheriges UND nötig, welches zusätzliche Befehle und somit auch Speicher und CPU-Takte verschlingt. Schaut man jedoch auf den RAM dreht sich das Bild: Hier ist das einzelne Byte sparsamer. 2 Byte kommen mir jedoch etwas klein vor – ich fürchte hier hat der Compiler mit seinen Optimierungen einiges der boolean-Logik geschmissen, denn theoretisch sollte zur ersten Variante deutlich mehr Abstand sein.

Wie auch immer: Selbst ohne große Analyse zeigt sich, was ich schon erwartet hatte: Boolean spart Flash, Byte spart RAM. Welche Variante die sinnvollere ist hängt letztendlich vom jeweiligen Projekt ab. Da mir der RAM ausging war die Umstellung auf Byte eine gute Möglichkeit etwas zu sparen. Möglicherweise hätte es auch gereicht den Compiler nicht mit -Os anzuweisen, einen möglichst kleinen Code zu generieren.

Arduino® Pro Mini Pinout Cheat-Sheet

Ich arbeite auf Grund des geringen Preises häufig mit Arduino®-kompatiblen Boards der „Pro Mini“-Serie. Leider sind die Pins auf diesen Boards nicht nach der CPU sondern dem Standard der Arduino-IDE beschriftet. Bisher nutzte ich diverse Pinout Cheat-Sheets aus dem Netz, jedoch haben viele dieser Diagramme vertauschte Pins, welches bei mir in den letzten Wochen zu einigen fehlerhaften Aufbauten führten. Lange Rede kurzer Sinn: Ich werfe ein weiteres Cheat-Sheet in den Raum – hoffentlich mit weniger fehlerhaft beschrifteten Pins. Wenn doch etwas auffällt: Die Kommentare sind offen.

Bild: https://www.adlerweb.info/blog/wp-content/uploads/2015/08/prominipinout-1.2-300×212.png
[DA]

BitBastelei #160 – Arduino-RGB-LED-Spaß

BitBastelei #160 - Arduino-RGB-LED-Spaß

(347 MB) 00:18:04

2015-08-09 10:00 🛈

Das Chaos Communication Camp steht vor der Tür – wichtigste Zutat? Blinkenlights! Gezeigt werden gleich 3 Konzepte für RGB-LEDs am Arduino Pro Mini:
– RGB-Streifen mit HL1606-Controller
– „Klassischer“ RGB-Streifen mit MOSFETs
– RGB-Knoten auf Basis des RGB-CTL aus BitBastelei #11

Weitere Links:

BitBastelei #153 – Hausbus: Planung & Prototyp

BitBastelei #153 - Hausbus: Planung & Prototyp

(32 MB) 00:20:58

2015-06-14 10:00 🛈

Auch wenn die Temperaturen nicht grade zum Basteln einladen: Etwas Fortschritt gibt es beim Hausbus. Wegen des geringen Preises und der einfachen Anpassbarkeit geht es erst mal auf Arduino-Basis. Da das Protokoll nicht sonderlich komplex ist lässt sich später immer noch auf ARM o.Ä. umstellen. Da die Shields für die angedachten Pro-Minis etwas überdimensioniert sind muss ein eigenes Mini-Shield her. IC-Technisch werde ich mich an iSysBus und den diversen Ardunio-Shields orientieren. Ein Breadboard-Test konnte bereits Steuerbefehle empfangen und senden. Passende PCBs sind inzwischen bestellt, die Schaltpläne und Boarddaten gibt es wenn der erste Prototyp grundsätzlich läuft.