Anzeige Modul TM1637
Betriebsspannung: 3,3V / 5V
Strom 30-80mA
Beleuchtung in rot

Mein Online – Notizbuch / Gehirn
Anzeige Modul TM1637
Betriebsspannung: 3,3V / 5V
Strom 30-80mA
Beleuchtung in rot
// blinkende LED
// Eine Leuchtdiode wird eine Sekunde an, und dann wieder eine Sekunde ausgeschaltet. Dieser Vorgang wird endlos wiederholt.
void setup() {
pinMode(13, OUTPUT); // Port 13 wird als Ausgang festgelegt
}
void loop() {
digitalWrite(13, HIGH); // Port 13 wird high geschaltet
delay(1000); // eine Sekunde warten
digitalWrite(13, LOW); // Port 13 wird low geschaltet
delay(1000); // eine Sekunde warten
}
Die Wire-Bibliothek ermöglicht dem Arduino, mit Geräten zu kommunizieren, die das I²C-Protokoll verwenden. Der Vorteil gegenüber der Kommunikation über die serielle Schnittstelle ist, dass über den I²C-Bus mehr als zwei Geräte miteinander kommunizieren können.
Selbstverständlich kann man nicht nur spezielle I²C-Geräte, sondern auch mehrere Arduinos an den I²C-Bus anschließen. Jedes am Bus angeschlossene Gerät erhält eine eigene Adresse. Da die Adresse 7 Bit breit ist, können bis zu 112 Geräte an einen I²C-Bus angeschlossen werden (16 der 128 möglichen Adressen sind für Sonderzwecke reserviert).
Der I²C-Bus ist eine Entwicklung von Philips (heute NXP Semiconductors). Wer mehr darüber wissen möchte, sollte sich den entsprechenden Eintrag in der Wikipedia ansehen.
Ab und zu wird der I²C-Bus als Two-Wire-Interface oder TWI bezeichnet.
Ein I²C-Bus benötigt zwei Leitungen: SCL für ein Taktsignal und SDA für Daten. Da ältere Arduinos für diese beiden Leitungen keine separaten Anschlüsse haben, verwendet man bei diesen Boards die Leitungen A4=SDA und A5=SCL
Der Schaltplan eines aktuellen Arduinos zeigt, dass SDA- und SCL-Anschluss weitergeführte A4- bzw. A5-Anschlüsse sind.
Wenn ein Arduino an einen I²C-Bus angeschlossen ist, stehen die analogen Eingänge A4 und A5 nicht mehr für andere Dinge zur Verfügung.
Die Busleitungen müssen mit Pull-up-Widerständen ausgestattet werden.
Um diese Bibliothek in eigenem Code zu verwenden, muss sie mittels
#include <Wire.h>
eingebunden werden.
Die Wire-Bibliothek stellt folgende Befehle zur Verfügung:
Beschreibung
Initialisiert die Bibliothek und meldet den Arduino mit der angegebenen Adresse am I²C-Bus an. Soll der Arduino als Busmaster angemeldet werden, entfällt die Adresse.
Syntax
Wire.begin()
Wire.begin(Adresse)
Parameter
Adresse = the 7-bit slave address (optional); if not specified, join the bus as a master.
Rückgabe
keine
Beschreibung
Fordert vom angegebenen Gerät die angegebene Anzahl von Bytes an. Der dritte (optionale) Parameter gibt an, ob der I²C-Bus nach dem Senden der Anforderung wieder freigegeben wird: true (default) bedeutet, dass der Bus wieder freigegeben wird, false sorgt dafür, dass der Bus „besetzt“ bleibt. Sinnvoll ist zweiteres dann, wenn man mehrfach Daten abfragen und verhindern möchte, dass ein anderer Busteilnehmer „dazwischenfunkt“.
Syntax
Wire.requestFrom(address, quantity)
Wire.requestFrom(address, quantity, stop)
Parameter
address: the 7-bit address of the device to request bytes from
quantity: the number of bytes to request
stop : boolean. true will send a stop message after the request, releasing the bus. false will continually send a restart after the request, keeping the connection active.
Rückgabe
byte : the number of bytes returned from the slave device
Beschreibung
Bereitet eine Datenübertragung an das Gerät mit der angegebenen Adresse vor. Anschließend werden die zu übertragenden Daten mit einem oder mehreren Wire.write()-Befehl(en) in einen Puffer geschrieben. Mit dem Aufruf von Wire.endTransmission() werden die Daten übertragen.
Syntax
Wire.beginTransmission(address)
Parameter
address: the 7-bit address of the device to transmit to
Rückgabe
Keine
Beschreibung
Überträgt die gepufferten Daten an das mit Wire.beginTransmission() angegebene Gerät.
Syntax
Wire.endTransmission()
Wire.endTransmission(stop)
Parameter
stop : boolean. true will send a stop message, releasing the bus after transmission. false will send a restart, keeping the connection active.
Rückgabe
byte, which indicates the status of the transmission:
0 : success
1 : data too long to fit in transmit buffer
2 : received NACK on transmit of address
3 : received NACK on transmit of data
4 : other error
Beschreibung:
Mit diesem Befehl befüllt man den Sendepuffer mit den Dingen, die beim Aufruf von Wire.endTransmittion() gesendet werden sollen.
Syntax:
Wire.write(value)
Wire.write(string)
Wire.write(data, length)
Parameter:
value: a value to send as a single byte
string: a string to send as a series of bytes
data: an array of data to send as bytes
length: the number of bytes to transmit
Rückgabe:
byte: write() will return the number of bytes written, though reading that number is optional
Beispiele:
Wire.write(5); // schreibt die Zahl 5 in den Puffer.
Wire.write(„Hallo“); // schreibt „Hallo“ in den Puffer.
Beschreibung;
Gibt die Anzahl der Bytes zurück, die sich im Empfangspuffer befinden. Man kann diesen Befehl zum Beispiel im Kopf einer while-Schleife benutzen. Die Schleife wird dann durchlaufen, so lange sich etwas im Empfangspuffer befindet.
Syntax:
Wire.available()
Parameter:
Rückgabe:
Beispiel:
while(Wire.available())
{ Serial.print(Wire.read()); }
Beschreibung
Liest ein Zeichen aus dem Empfangspuffer
Syntax:
Wire.read()
Parameter:
keine
Rückgabe:
Gibt das empfangene Byte zurück.
Beispiel:
Siehe das Beispiel bei Wire.available().
Beschreibung:
Syntax:
Parameter:
Rückgabe:
Beispiel:
Wire.onReceive(Funktion)
Beschreibung
Bestimmt die angegebene Funktion als diejenige Funktion, die aufgerufen wird, wenn Daten über den I²C-Bus empfangen wurden. Die Funktionsdefinition kann einen Parameter enthalten, mit dem die Zahl der eingetroffenen Bytes übergeben werden kann.
Syntax
Parameter
Rückgabe
Beispiel:
Wire.onReceive(I2C_receive);
Die Definition dieser Funktion beginnt dann beispielsweise mit void I2C_receive(int num_bytes) {…
Achtung:
Der Typ des Parameters der Funktion muss int sein, sonst gibt es beim Compilieren eine Fehlermeldung.
Wire.onRequest(Funktion)
Beschreibung:
Bestimmt die angegebene Funktion als diejenige Funktion, die aufgerufen wird, wenn Daten angefordert werden (siehe Wire.requestFrom()). Diese Funktion erhält keine Daten und gibt auch nichts zurück.
Syntax:
Parameter:
Rückgabe:
Beispiel:
Wire.onRequest(requestHandler);
Die Definition dieser Funktion sieht dann beispielsweise so aus:
void requesthandler() {…}
GND = Masse
DIR = Drehrichtung
STEP = SchrittSLEEP =RESET =
M2 =
M1 =
M0 =ENABLE =FAULT =
A2 = Motorwicklung A
A1 = Motorwicklung A
B1 = Motorwicklung B
B2 = Motorwicklung B
GND = Masse
VMOT = Spannungsversorgung 8 – 45V DC für Motor
https://iknowvations.in/de/arduino/drv8825-stepper-motor-driver-with-arduino-tutorial/
Vorwiderstände (102) mit 1kOhm sind auf dem Modul schon vorhanden.
Pinbelegung:
R = Rot
G = Grün
B = Blau
GND = Masse
// RGB LED-Modul
// Die vorhandenen Farben schalten
int BLAU = 13;
int GRUEN = 12;
int ROT = 11;
void setup() {
pinMode(BLAU, OUTPUT); // Port als Ausgang und als BLAU festlegen
pinMode(GRUEN, OUTPUT); // Port als Ausgang und als GRUEN festlegen
pinMode(ROT, OUTPUT); // Port als Ausgang und als ROT festlegen
}
void loop() {
digitalWrite(BLAU, HIGH); // Blau wird high geschaltet
delay(500); // warten
digitalWrite(BLAU, LOW); // Blau wird high geschaltet
digitalWrite(GRUEN, HIGH); // Gruen wird high geschaltet
delay(500); // warten
digitalWrite(GRUEN, LOW); // Gruen wird low geschaltet
digitalWrite(ROT, HIGH); // ROT wird high geschaltet
delay(500); // warten
digitalWrite(ROT, LOW); // ROT wird low geschaltet
}
Ein Programm besteht grundsätzlich aus dem setup() – und dem loop() – Block.
Der setup()-Block wird einmal beim Neustart oder beim hochladen eines Programm auf den Arduino ausgeführt.
Der loop()-Block wird, nach dem setup()-Block, so lange zyklisch wiederholt bis der Arduino ausgeschaltet wird.
// Allgemeine Programmstruktur
//
// Ausgabe von "Hallo Welt" am Seriellen Monitor über die Serielle Schnittstelle
//
void setup() {
// initialisiere die serielle Kommunikation mit 9600bps:
Serial.begin(9600); }
void loop() {
Serial.println("Hallo Welt!" );
// warte 10ms bis zur nächsten loop()-Ausführung.
delay(10); }
Achtung:
Wenn die Serielle Schnittstelle verwendet wird, dürfen die Ports 0 und 1 nicht verwendet werden.
Die Hardware ist zum großen Teil aus Holz.
Die 3D-Drucke stammen von TNT3Dprint.de.
Zahnriemenscheibe Azimut:
teeth = 120; // Number of teeth
profile = 12; //12=GT2_2mm
motor_shaft = 50.1; // NEMA17 motor shaft exact diameter = 5
m3_dia = 3.2; // 3mm hole diameter
m3_nut_hex = 1; // 1 for hex
m3_nut_flats = 5.7; // normal M3 hex nut exact width = 5.5
m3_nut_depth = 2.7; // normal M3 hex nut exact depth = 2.4
retainer = 1; // Belt retainer above teeth
retainer_ht = 1.5; // height of retainer flange over pulley
idler = 1; // Belt retainer below teeth
idler_ht = 1.5; // height of idler flange over pulley
pulley_t_ht = 8; // length of toothed part of pulley
pulley_b_ht = 8; // pulley base height
pulley_b_dia = 70; // pulley base diameter
no_of_nuts = 3; // number of captive nuts required
nut_angle = 120; // angle between nuts
nut_shaft_distance = 1.2; // distance between inner face of nut and shaft
Der Lagerbockbesteht aus drei aufeinandergeleimte Multiplexplatten. In diese wurde unten und oben ein Lager, Innendurchmesser 50mm eingesetzt.
Lager: 2 x Rillenkugellager 6010 2RS 50 x 80 x 16 mm
Azimutwinkel berechnen:
A = Azimutwinkel
gLE = geographische Länge des Empfangsort
gBE = geographische Breite des Empfangsort
gLS = geographische Länge der Satelittenposition
tan(gLE – gLS)
A = 180° + arctan ————–
sin gBE
Für Astra mit 19,2 Ost würde das z.B. so aussehen:
gLE = 8,7582988 (Längengrad für Knittlingen)
gBE = 49,0240107 (Breitengrad für Knittlingen)
gLS = 19,2
tan(8,7582988 – 19,2)
A = 180° + arctan ——————-
sin 49,0240107
Elevation berechnen:
GPS-Koordinaten für Knittingen:
49° 1′ 26.439″ N
8° 45′ 29.876″ E
http://www.fen-net.de/satellitentechnik-online/texte/orbit/azimut.htm
// Azimut und Elevation berechnen
void setup() {
double A; // Azimutwinkel
double E; // Elevationswinkel
// Daten für Stuttgart
String Ort = "Stuttgart";
float gLE = 9.2L; // Längengrad Stuttgart
float gBE = 48.8L; // Breitengrad Stuttgart
// Daten für Berlin
/*String Ort = "Berlin";
float gLE = 13.4L; // Längengrad Berlin
float gBE = 52.5L; // Breitengrad Berlin
*/
String Satellit = "Astra 19,2 Ost";
float gLS = 19.2L; // Längengrad Astra
//string Satellit = "Eutelsat F2 10,0 Ost";
//float gLS = 10.0L; // Längengrad Eutelsat F2
// Die Grademaße in Bogenmaße umrechnen
float L = 3.14/180 * gLE;
float B = 3.14/180 * gBE;
float P = 3.14/180 * gLS;
// Azimut in Gradmaß berechnen
A = 180 + 180/3.14 * atan (tan(L - P) / sin(B));
// Elevation im Gradmaß berechnen
E = 180/3.14 * atan (((cos(B) * cos(L - P)) -0.1513) / sqrt(1-sq(cos(B) * cos(L - P))));
// initialisiere die serielle Kommunikation mit 9600bps:
Serial.begin(9600);
// Ausgabe der berechneten Winkel
Serial.println ("Ort: " + Ort);
Serial.println ("Satellit: " + Satellit);
Serial.print ("Azimut = ");
Serial.print (A);
Serial.print (" Elevation = ");
Serial.println (E);
}
Für die Ansteuerung der Schrittmotoren wird ein RAMPS 1.4 – Shield verwendet. Folgende Anschlüsse werden verwendet
Azimut
E0 = Anschluss für den Schrittmotor „Azimut“
X_MIN = Endschalter Azimut MIN
X_MAX = Endschalter Azimut MAX
Elevation
E1 = Anschluss für den Schrittmotor „Elevation“
Y_MIN = Endschalter Elevation MIN
Y_MAX = Endschalter Elevation MAX
Der Kompassensor so wie eventuell weitere Sensoren werden über den I2C-Bus am RAMPS 1.4 angeschlossen
5V = rot
GND = schwarz
20 = blau
21 = grün
Das ist 433Mhz RF Transmitter mit Empfänger Satz für Arduino ARM MCU drahtlos
Anwendungsumgebung:
Fernbedienungsschalter, Empfängermodul, Motorräder, Automobil Antidiebstahlprodukte, Haussicherheitsprodukte, elektrische Türen, Verschlusstüren, Fenster, Fernbedienungssteckdose, Fernbedienung LED, entfernte Audiofernbedienung elektrische Türen, Werkstättentürenfernbedienung, Fernbedienung einziehbare Türen, entferntes Volumentor, Pantüren, Fernbedienungstürenöffner, Tür Schlussgerätregelsystem, Fernbedienungsvorhänge, alarmieren Gastgeber, Warnung, Fernbedienungsmotorradfernbedienung elektrische Autos, Fernbedienung mp3.
Spezifizierung:
Empfängermodul:
Produktmodell: Xd-rf-5v
Betriebsstromspannung: dc5v
Ruhiger Strom: 4ma
Empfang der Frequenz: 433.92 MHz
Empfängerempfindlichkeit:-105db
Größe:30x14x7mm
Transmitter:
Technische Rahmen dessen
Produktmodell: xd-fst
Startentfernung:20-200 Meter (verschiedene Stromspannung, verschiedene Ergebnisse)
Betriebsstromspannung:3.5-12v
Dimensionen: 19 * 19 Mm
Betriebsweise: Sind
Übertragungsrate: 4 Kilobyte / s
Übertragungspower: 10mw
Übertragungsfrequenz: 433 M
Pinbelegung von linkem → Recht: (Daten; VCC; GND)
LEDs haben eine Anode (Plus-Pol) und eine Kathode (Minus-Pol).
Das Anodenbeinchen ist etwas länger und bei runden LEDs ist die Kathoden-Seite des LED-Gehäuses abgeschliffen.
Ich verwende die zepto.js JavaScript Library.
hide() ⇒ self
Hide elements in this collection by setting their display
CSS property to none
.
show() ⇒ self
Restore the default value for the “display” property of each element in the array, effectively showing them if they were hidden with hide.