3 3 Mega2560 R3 Starter Kit Ausgabe 19.05.
3 Mega2560 R3 Star- Index 1 Allgemeine Informationen & Technische Daten 2 Anschlussbelegung 3 3.1 Software Installation Software Einrichtung 4 EU-Konformitätserklärung 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18 5.19 5.
Sehr geehrter Kunde, vielen Dank, dass Sie sich für unser Produkt entschieden haben. Im Folgenden haben wir aufgelistet, was bei der Inbetriebnahme zu beachten ist: 1. Allgemeine Informationen & Technische Daten Unser Board ist ein hochwertiger Nachbau und kompatibel mit dem Arduino Mega 2560, es handelt sich aber ausdrücklich nicht um einen Original Arduino. Das Mega Board ist das richtige Mikrocontroller -board für die, die schnell und unkompliziert in die Programmierwelt einsteigen wollen.
2. Anschlussbelegung Ausgabe 19.05.
3. Software Installation Damit mit man mit der Programmierung des JOY-iT ARD_Mega2560R3 beginnen kann, muss vorab auf dem Computer, der für das Programmieren verwendet wird, eine Entwicklungsumgebung, sowie die Treiber für das zugehörige Betriebssystem, installiert werden. Als Entwicklungsumgebung bietet sich die Arduino IDE an, die von dem Arduino Hersteller als OpenSource Software unter der GPLv2 veröffentlicht wurde, die sich vom Konzept und Aufbau an Einsteiger richtet.
2. Unter [Werkzeuge -> Port] wählen Sie dann den Port aus, der mit „(Arduino/Genuino Mega or Mega 2560)“ gekennzeichnet ist. Ausgabe 19.05.
4 EU-Konformitätserklärung Hersteller: JOY-iT Europe GmbH Pascalstr. 8 47506 Neukirchen-Vluyn Artikelbezeichnung: ard_mega2560R3 /ARD-Set01 Beschreibung: Microcontroller-Board / Set Verwendungszweck: Versuchsaufbauten / Prototypen Hiermit erklärt der Hersteller, die JOY-IT Europe GmbH, Pascalstr.
5 Projektbeispiele 5.1 Projekt 1: „Hallo Welt“ Wir beginnen mit etwas simplen. Für dieses Projekt benötigt man nur die Platine und ein USB Kabel, um das „Hallo Welt!“ Experiment zu starten.
int val; int ledpin=13; void setup() { Serial.begin(9600); pinMode(ledpin,OUTPUT); // Definiert die variable “Val” // Definiert digitales Interface 13 // Setzt die Baudrate auf 9600 um //der Konfiguration der Software zu //entsprechen. Wenn es mit einem //bestimmten Gerät verbunden ist, //muss die Baudrate übereinstimmen. // Bestimmt den Digital Pin 13 als //Ausgang. Wenn I/O Ports an // einem Arduino verwendet werden, //wird diese Konfiguration immer //benötigt. } void loop() { val=Serial.
Klick auf den seriellen Port Monitor, füge „R“ ein, LED wird einmal aufleuchten, PC wird die Information „Hallo Welt” vom Arduino erhalten. Ausgabe 19.05.
5.2 Projekt 2: Blinkende LED Das blinkende LED Experiment ist ziemlich einfach. In dem „Hallo Welt!“ Programm sind wir der LED bereits begegnet. Diesmal werden wir eine LED mit einem der digitalen Pins verbinden. Zusätzlich zum Arduino und einem USB Kabel werden die folgenden Teile benötigt: Hardware Menge Mega2560 Platine USB Kabel Rote M5 LED 220Ω Widerstand Breadboard Breadboard Überbrückungskabel 1 1 1 1 1 2 Wir folgen dem unten angezeigten Diagramm des verlinkten Experimentschaltplans.
int ledPin = 10; // Definiert Digital Pin 10. void setup() { pinMode(ledPin, OUTPUT); als Ausgang. } // Definiert Pin mit verbundener LED void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000); } // Schaltet die LED ein. // Wartet eine Sekunde. // Schaltet die LED aus. // Wartet eine Sekunde Nach dem Runterladen dieses Programms, wirst du im Experiment die an Pin 10 verbundene LED sich, mit einem Intervall von ca. einer Sekunde, Ein- und Ausschalten sehen.
5.3 Projekt 3: PWM Lichtkontrolle PWM, kurz für Pulse Width Modulation, ist eine Technik, welche benutzt wird um analoge Signalpegel in digitale zu kodieren. Ein Computer kann keine Analogspannung ausgeben. Er kann nur Digitalspannung ausgeben mit Werten wie 0V oder 5V. Also wird ein hochauflösenden Zähler benutzt, um einen spezifischen analogen Signalpegel zu kodieren, indem man den Auslastungsgrad von PWM moduliert.
Nachfolgend sind die drei Grundparameter von PWM: 1. Die Amplitude der Impulsbreite (Minimum/Maximum) 2. Die Pulsperiode (Die gegenseitige Pulsfrequenz in einer Sekunde) 3. Der Spannungspegel (wie: 0V-5V) Es gibt 6 PWM Schnittstellen auf dem Mega2560: digitaler Pin 3, 5, 6, 9, 10 und 11. In vorherigen Experimenten haben wir die „tastenkontrollierte LED“ gemacht, wo wir ein digitales Signal verwendet haben und einen digitalen Pin zu kontrollieren.
In dem Erstellungsprozess für das Programm werden wir die analoge Schreibfunktion nutzen (PWM Schnittstelle, Analogwert). In diesem Experiment werden wir den Analogwert des Potentiometers lesen und den Wert dem PWM Port zuordnen, sodass eine entsprechende Änderung der Helligkeit der LED beobachtet werden kann. Ein letztes Teil wird den Analogwert auf dem Bildschirm anzeigen. Du kannst dies als das „Analogwert auslesen“ Projekt ansehen welchem einen Analogen PWM wert zugeordnet wird.
int potpin=0; int ledpin=11; // Initialisiert analogen Pin 0 // Initialisiert den digitalen Pin 11 (PWM Ausgang) int val=0; // Speichert den Wert der Variable vom Sensor //temporär void setup() { pinMode(ledpin,OUTPUT); Serial.begin(9600); // Definiert digitalen Pin 11 als „Ausgang“ // Setzt Baudrate auf 9600 // Achtung: Für analoge Ports sind sie automatisch als // „Eingang“ eingestellt } void loop() { val=analogRead(potpin); Serial.
5.4. Projekt 4: Ampellichter Im vorherigen Programm haben wir das blinkende LED Experiment mit einer LED durchgeführt. Jetzt wird es Zeit ein etwas komplizierteres Experiment durchzuführen: Ampellichter. Eigentlich sind diese zwei Experimente ähnlich. Während dieses Experiments werden wir 3 LEDs mit verschiedenen Farben nutzen, während im letzten nur eine LED zum Einsatz kam.
Da dies eine Simulation von Ampellichtern ist, sollte auch die Leuchtzeit jeder einzelnen LED genau so lange, wie bei echten Ampellichtern sein. In diesem Programm werden wir die Arduino Verzögerungsfunktion nutzen, um die Verzögerungszeit zu kontrollieren. Ausgabe 19.05.
int redled =10; int yellowled =7; int greenled =4; void setup() { pinMode(redled, OUTPUT); „Ausgang“ pinMode(yellowled, OUTPUT); „Ausgang“ pinMode(greenled, OUTPUT); „Ausgang“ } void loop() { digitalWrite(greenled, HIGH); delay(5000); digitalWrite(greenled, LOW); for(int i=0;i<3;i++) { delay(500); digitalWrite(yellowled, HIGH); delay(500); digitalWrite(yellowled, LOW); } delay(500); digitalWrite(redled, HIGH); delay(5000); digitalWrite(redled, LOW); } // Initialisiert digitalen Pin 8 // Initialisiert digit
5.5 Projekt 5: LED Jagd-Effekt Wir sehen oft Reklametafeln, welche versehen sind mit bunten LEDs. Diese ändern sich ständig um verschiedene Effekte zu formen. In diesem Experiment wird ein Programm verfasst, welches den LED Jagd-effekt simuliert. Hardware Menge Mega2560 Platine USB Kabel LED 1 1 6 220Ω Widerstand Breadboard Breadboard Überbrückungskabel 6 1 12 Ausgabe 19.05.
int BASE = 2 ; // Der I/O Pin für die erste LED int NUM = 6; // Anzahl der LEDs void setup() { for (int i = BASE; i < (BASE + NUM); i ++) { pinMode(i, OUTPUT); // Setzt I/O Pinne als Ausgang } } void loop() { for (int i = BASE; i < (BASE + NUM); i ++) { digitalWrite(i, LOW); // Setzt I/O Pinne auf „niedrig“, schaltet die LEDs // nacheinander ein delay(200); // Verzögerung } for (int i = BASE; i < (BASE + NUM); i ++) { digitalWrite(i, HIGH); // Setzt I/O Pinne auf „hoch“, // schaltet die LEDs nacheinander ab
5.6 Projekt 6: Tastengesteuerte LED I/O Port ist die Schnittstelle für EINGANG und AUSGANG. Bis jetzt haben wir nur den Ausgang benutzt. In diesem Experiment werden wir versuchen den Eingang zu benutzen, um den Ausgangswert des angeschlossenen Gerätes auslesen zu können. Wir werden eine Taste und eine LED mit dem Eingang und dem Ausgang benutzen, um ein besseres Verständnis über die I/O Funktion zu vermitteln. Tastenschalter, den meisten von uns bekannt, haben einen Schaltwert (digitaler Wert).
Sobald man die Taste drückt, wird sich die LED einschalten. In diesem Programm wird eine Entscheidungsabfrage benutzt.
5.7 Projekt 7: Responder Experiment In diesem Programm gibt es 3 Tasten und eine Reset-Taste, welche mit Hilfe von 7 digitalen I/O PINs die 3 entsprechenden LEDs steuern. Hardware Menge Mega2560 Platine USB Kabel Rote M5 LED Gelbe M5 LED Grüne M5 LED 220Ω Widerstand Tastenschalter Breadboard 1 1 1 1 1 7 4 1 Breadboard Überbrückungskabel 13 Ausgabe 19.05.
int redled=8; int yellowled=7; int greenled=6; int redpin=5; int yellowpin=4; int greenpin=3; int restpin=2; int red; int yellow; int green; void setup() { pinMode(redled,OUTPUT); pinMode(yellowled,OUTPUT); pinMode(greenled,OUTPUT); pinMode(redpin,INPUT); pinMode(yellowpin,INPUT); pinMode(greenpin,INPUT); } void loop() // // // // // // // Setzt die rote LED als „Ausgang“ Setzt die gelbe LED als „Ausgang“ Setzt die grüne LED als „Ausgang“ Initialisiert Pin für rote Taste Initialisiert Pin für gelbe Taste
void YELLOW_YES() // Führt den Code aus bis gelbe LED an //ist; endet den Kreislauf //wenn die Reset-Taste betätigt wird { while(digitalRead(restpin)==1) { digitalWrite(redled,LOW); digitalWrite(greenled,LOW); digitalWrite(yellowled,HIGH); } clear_led(); } void GREEN_YES() // Führt den Code aus bis grüne LED an //ist; endet den //Kreislauf wenn die Reset-Taste betätigt //wird { while(digitalRead(restpin)==1) { digitalWrite(redled,LOW); digitalWrite(greenled,HIGH); digitalWrite(yellowled,LOW); } clear_le
5.8 Projekt 8: Aktiver Summer Aktive Summer werden in Computern, Druckern, Weckern, Elektrospielzeug etc. als ein Geräusch emittierendes Element eingesetzt. Es hat eine innere Vibrationsquelle. Mit einer 5V-Energieversorgung verbunden, kann es wiederholt summen. Hardware Menge Mega2560 Platine USB Kabel Summer Breadboard Breadboard Überbrückungskabel 1 1 1 1 2 Ausgabe 19.05.
int buzzer=8; Pin, welcher den Summer // Initialisiere digitalen I/O //kontrolliert void setup() { pinMode(buzzer,OUTPUT); // Stellt den Pin Modus auf // „Ausgang“ } void loop() { digitalWrite(buzzer, HIGH); // Macht Geräusche } Das Projekt ist nach dem Übertragen des Programms abgeschlossen. Der Summer summt. Ausgabe 19.05.
5.9 Projekt 9: Passiver Summer Mit dem Mega2560 sind viele interaktive Projekte möglich. Die bisherigen Projekte haben sich hauptsächlich mit LEDs beschäftigt, doch ein häufig verwendetes Projekt ist das akustisch-optische Display. Hierfür wird ein passiver Summer verwendet, der sich, im Gegensatz zum aktiven Summer, nicht selbst aktivieren kann. Die Aktivierung erfolgt über eine Pulsfrequenz. Unterschiedliche Frequenzen resultieren beim Summer in unterschiedlichen Tönen.
int buzzer=8; void setup() { pinMode(buzzer,OUTPUT); // Wählt digitalen I/O Pin für den Summer // aus // Setzt die digitale IO Pinreihen //Ausgänge als Ausgang.
5.10 Projekt 10: Analogwert auslesen In diesem Projekt geht es um die analogen Schnittstellen des Mega2560. Ein analogRead () Befehl kann den Wert der Schnittstelle lesen. Durch die Analog-Digital-Umwandlung des Mega2560 liegen die ausgelesenen Werte zwischen 0 und 1023. Um die Werte auslesen zu können, ist es wichtig, auf die richtige Baudrate zu achten. Die Baudrate des Computers sollte der Baudrate des Gerätes entsprechen.
int potpin=0; int ledpin=13; int val=0; sprungswert zu void setup() { pinMode(ledpin,OUTPUT); Serial.begin(9600); } void loop() { digitalWrite(ledpin,HIGH); delay(50); digitalWrite(ledpin,LOW); delay(50); val=analogRead(potpin); Serial.
5.11 Projekt 11: Fotowiderstand Ein Fotowiderstand (Photovaristor) ist ein Widerstand, dessen Widerstandskraft je nach einfallender Lichtstärke variiert. Er basiert auf dem fotoelektrischen Effekt von Halbleitern. Wenn das einfallende Licht intensiv ist, reduziert sich die Widerstandskraft. Wenn das einfallende Licht schwach ist, erhöht sich die Widerstandskraft.
int potpin=0; int ledpin=11; // Initialisiert analogen Pin 0 an //dem Photovaristor angeschlossen ist // Initialisiert digitalen Pin 11. Ausgang //welcher die Helligkeit der LED reguliert // Initialisiert Variable „Val“ int val=0; void setup() { pinMode(ledpin,OUTPUT); Serial.begin(9600); } void loop() { val=analogRead(potpin); Serial.
5.12 Projekt 12: Flammensensor Der Flammensensor (infrarotempfangende Triode) wird speziell auf Robotern verwendet um Flammenquellen zu finden. Dieser Sensor hat eine hohe Sensitivität zu Flammen. Der Flammensensor ist nach dem Prinzip, dass Infrarotstrahlung sehr empfindlich auf Feuer reagiert, gebaut. Er hat ein speziell entworfenes Infrarot-Aufnahmerohr um Feuer zu entdecken, um dann die Helligkeit der Flamme zu einem Signal umzuwandeln.
int flame=0; // int Beep=9; // int val=0; // void setup() { pinMode(Beep,OUTPUT); // pinMode(flame,INPUT); // Serial.begin(9600); // } void loop() { val=analogRead(flame); // Serial.println(val); // if(val>=600) // { digitalWrite(Beep,HIGH); }else { digitalWrite(Beep,LOW); } delay(500); } Ausgabe 19.05.
5.13 Projekt 13: Lageschalter Der Lageschalter kontrolliert den EIN- und AUSSCHALTER einer LED. Der Schalter ist an, wenn ein Ende vom Schalter unterhalb horizontaler Position ist. Anhand des Spannungswertes des Analog-Ports, an dem der Lageschalter angeschlossen wird, kann geprüft werden, in welcher Lage sich der Schalter befindet. Hardware Menge Mega2560 Platine USB Kabel Lageschalter 1 1 1 Rote M5 LED 220Ω Widerstand Breadboard 1 1 1 Breadboard Überbrückungskabel 5 Ausgabe 19.05.
void setup() { pinMode(8,OUTPUT); // Stellt digitalen Pin 8 als „Ausgang“ ein } void loop() { int i; // Definiert Variable i while(1) { i=analogRead(5); // Liest den Spannungswert vom analogen Pin 5 if(i>512) // Wenn größer als 512 (2.5V) { digitalWrite(8,LOW); // Schalte LED ein } else // sonst { digitalWrite(8,HIGH); // Schalte LED aus } } } Wird das Breadboard bis zu einem bestimmten Grad geneigt, so schaltet sich die LED ein. Falls es keine Neigung gibt, bleibt die LED aus. Ausgabe 19.05.
5.14 Projekt 14: 1-Ziffer LED Segment Anzeige LED Segment Anzeigen sind verbreitet für die Anzeige von numerischen Informationen. Sie werden oft bei Anzeigen von elektromagnetischen Öfen, vollautomatischen Waschmaschinen, Wassertemperaturdisplays, elektronischen Uhren etc. verwendet. Die LED Segment Anzeige ist ein Halbleiter und ein Licht ausgebendes Gerät. Seine Basiseinheit ist eine LED. Die LED Segment Anzeige kann in die 7-Segment und die 8-Segment Anzeige unterteilt werden.
Ausgabe 19.05.
int int int int int int int int a=7; b=6; c=5; d=10; e=11; f=8; g=9; dp=4; // // // // // // // // // Stelle Stellt Stellt Stellt Stellt Stellt Stellt Stellt Stellt den IO Pin für jedes Segment ein digitalen Pin 7 für Segment a ein digitalen Pin 6 für Segment b ein digitalen Pin 5 für Segment c ein digitalen Pin 10 für Segment d ein digitalen Pin 11 für Segment e ein digitalen Pin 8 für Segment f ein digitalen Pin 9 für Segment g ein digitalen Pin 4 für Segment dp ein void digital_0(void) // Zeigt Numm
void digital_3(void) { digitalWrite(g,HIGH); digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(dp,LOW); digitalWrite(f,LOW); digitalWrite(e,LOW); } void digital_4(void) { digitalWrite(c,HIGH); digitalWrite(b,HIGH); digitalWrite(f,HIGH); digitalWrite(g,HIGH); digitalWrite(dp,LOW); digitalWrite(a,LOW); digitalWrite(e,LOW); digitalWrite(d,LOW); } void digital_5(void) { unsigned char j; digitalWrite(a,HIGH); digitalWrite(b, LOW); digitalWrite(c,HIGH); digitalWr
void digital_8(void) // Zeigt Nummer 8 an { unsigned char j; for(j=5;j<=11;j++) digitalWrite(j,HIGH); digitalWrite(dp,LOW); } void digital_9(void) // Zeigt Nummer 5 an { unsigned char j; digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(e, LOW); digitalWrite(f,HIGH); digitalWrite(g,HIGH); digitalWrite(dp,LOW); } void setup() { int i; // deklariert eine Variable for(i=4;i<=11;i++) pinMode(i,OUTPUT); // Stellt Pin 4-11 als „Ausgang“ } void loop() { while(1) {
5.15 Projekt 15: 4-Ziffern LED Segment Anzeige In diesem Projekt wird eine 4-Ziffern 7-Segmente Anzeige betrieben. Für LED Anzeigen sind strombegrenzende Widerstände unverzichtbar. Es gibt zwei Verdrahtungsmethoden für strombegrenzende Widerstände. Bei der ersten verbindet man einen Widerstand mit jeder Anode, das heißt 4 insgesamt für d1-d4 Anode. Ein Vorteil dieser Methode ist, dass sie weniger Widerstände benötigt, und zwar nur 4 Stück. Aber diese Methode kann keine konstante Helligkeit erhalten.
// PIN für Anode int a = 1; int b = 2; int c = 3; int d = 4; int e = 5; int f = 6; int g = 7; int dp = 8; // PIN int d4 int d3 int d2 int d1 für Kathode = 9; = 10; = 11; = 12; // Stellt Variable ein long n = 1230; int x = 100; int del = 55; void setup() { pinMode(d1, OUTPUT); pinMode(d2, OUTPUT); pinMode(d3, OUTPUT); pinMode(d4, OUTPUT); pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT); pinMode(d, OUTPUT); pinMode(e, OUTPUT); pinMode(f, OUTPUT); pinMode(g, OUTPUT); pinMode(dp, OUTPUT); } void lo
void WeiXuan(unsigned char n)// { switch(n) { case 1: digitalWrite(d1,LOW); digitalWrite(d2, HIGH); digitalWrite(d3, HIGH); digitalWrite(d4, HIGH); break; case 2: digitalWrite(d1, HIGH); digitalWrite(d2, LOW); digitalWrite(d3, HIGH); digitalWrite(d4, HIGH); break; case 3: digitalWrite(d1,HIGH); digitalWrite(d2, HIGH); digitalWrite(d3, LOW); digitalWrite(d4, HIGH); break; case 4: digitalWrite(d1, HIGH); digitalWrite(d2, HIGH); digitalWrite(d3, HIGH); digitalWrite(d4, LOW); break; default : digitalWrite(d1, H
void Num_1() { digitalWrite(a, LOW); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, LOW); digitalWrite(g, LOW); digitalWrite(dp,LOW); } void Num_2() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, LOW); digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, LOW); digitalWrite(g, HIGH); digitalWrite(dp,LOW); } void Num_3() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite
void Num_5() { digitalWrite(a, HIGH); digitalWrite(b, LOW); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, LOW); digitalWrite(f, HIGH); digitalWrite(g, HIGH); digitalWrite(dp,LOW); } void Num_6() { digitalWrite(a, HIGH); digitalWrite(b, LOW); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, HIGH); digitalWrite(g, HIGH); digitalWrite(dp,LOW); } void Num_7() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, LOW); digitalWr
void Num_9() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, LOW); digitalWrite(f, HIGH); digitalWrite(g, HIGH); digitalWrite(dp,LOW); } void Clear() // Leert den Bildschirm { digitalWrite(a, LOW); digitalWrite(b, LOW); digitalWrite(c, LOW); digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, LOW); digitalWrite(g, LOW); digitalWrite(dp,LOW); } void pickNumber(unsigned char n) // Wählt Nummer { switch(n) { case 0:Num_0(); break; case 1:N
void Display(unsigned char x, unsigned char Number) { WeiXuan(x); pickNumber(Number); delay(1); Clear() ; // Leert den Bildschirm } Wird der obrige Code vollständig auf den Mega2560 übertragen, so gibt die Anzeige „1234“ aus. Ausgabe 19.05.
5.16 Projekt 16: LM35 Temperatursensor Der LM35 ist ein verbreiteter und einfach zu benutzender Temperatursensor. Man braucht keine sonstige Hardware. Die einzige Schwierigkeit besteht darin, den Code zu schreiben, welcher dafür sorgt, dass die Analogwerte, die er liest, in Celsius Temperatur umgewandelt werden. Hardware Menge Mega2560 Platine USB Kabel LM35 Breadboard 1 1 1 1 Breadboard Überbrückungskabel 5 Ausgabe 19.05.
int potPin = 0; void setup() { Serial.begin(9600); } void loop() { int val; int dat; val=analogRead(0); dat=(125*val)>>8; Serial.print("Temp:"); Serial.print(dat); Serial.
5.17 Projekt 17: 74HC595 Das 74HC595 ist eine Kombination aus einem 8-Ziffern Schieberegister, Merker und ausgestattet mit einem Tri-State Ausgang. In diesem Projekt wird der 74HC595 verwendet, um 8 LEDs Ressourcensparend zu verwenden. Die benötigten I/O Ports reduzieren sich von 8 auf 3 Ports. Hardware Menge Mega2560 Platine USB Kabel 74HC595 Chip Rote M5 LED Grüne M5 LED 220Ω Widerstand Breadboard Breadboard Überbrückungskabel 1 1 1 4 4 8 1 37 Ausgabe 19.05.
int data = 2; // Stellt int clock = 5; // Stellt int latch = 4; // Stellt int ledState = 0; const int ON = HIGH; const int OFF = LOW; void setup() { pinMode(data, OUTPUT); pinMode(clock, OUTPUT); pinMode(latch, OUTPUT); } void loop() { for(int i = 0; i < 256; i++) { updateLEDs(i); delay(500); } } void updateLEDs(int value) { digitalWrite(latch, LOW); shiftOut(data, clock, MSBFIRST, digitalWrite(latch, HIGH); } Ausgabe 19.05.
5.18 Projekt 18: RGB LED Diese Diode wird durch PWM Signale gesteuert und besitzt ein dreifarbiges System um Farben darzustellen. Das Bauteil kann direkt an den Mega2560 Schnittstellen ausgeführt werden. Ausgabe 19.05.
int redpin = 11; int bluepin =10; int greenpin =9; // Wählt Pin für rote LED aus // Wählt Pin für blaue LED aus // Wählt Pin für grüne LED aus int val; void setup() { pinMode(redpin, OUTPUT); pinMode(bluepin, OUTPUT); pinMode(greenpin, OUTPUT); Serial.
5.19 Projekt 19: Infrarot Fernbedienung Der IR-Empfänger wandelt das ankommende Lichtsignal in ein schwaches, elektrisches, Signal um. Um den Code einer Fernbedienung zu dekodieren, ist es nötig die Kodierungsmethode zu kennen. In diesem Projekt wird dafür das NEC-Protokoll verwendet. Hardware Menge Mega2560 Platine USB Kabel Infrarotempfänger Infrarot Fernbedienung Rote M5 LED 220Ω Widerstand Breadboard Breadboard Überbrückungskabel 1 1 1 1 6 6 1 11 Ausgabe 19.05.
Bitte achten Sie darauf, dass Sie, bevor Sie den unten stehenden Code auf Ihren Mega2560 übertragen, die IRremote Bibliothek in Ihrem Arduino Bibliotheksverwalter herunterladen und installieren. Nur dann wird das Projekt wie gewünscht funktionieren. Ausgabe 19.05.
#include
Serial.print(results->value, HEX); Serial.print(" ("); Serial.print(results->bits, DEC); Serial.println(" bits)"); } Serial.print("Raw ("); Serial.print(count, DEC); Serial.print("): "); for (int i = 0; i < count; i++) { if ((i % 2) == 1) { Serial.print(results->rawbuf[i]*USECPERTICK, DEC); } else { Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC); } Serial.print(" "); } Serial.
void loop() { if (irrecv.decode(&results)) { if (millis() - last > 250) { on = !on; // digitalWrite(8, on ? HIGH : LOW); digitalWrite(13, on ? HIGH : LOW); dump(&results); } if (results.value == on1 ) digitalWrite(LED1, HIGH); if (results.value == off1 ) digitalWrite(LED1, LOW); if (results.value == on2 ) digitalWrite(LED2, HIGH); if (results.value == off2 ) digitalWrite(LED2, LOW); if (results.value == on3 ) digitalWrite(LED3, HIGH); if (results.value == off3 ) digitalWrite(LED3, LOW); if (results.
5.20 Projekt 20: 8x8 LED Matrix Die interne Struktur und äußere Erscheinung einer LED Matrix sind wie folgt: Die 8x8 LED Matrix besteht aus 64 LEDs. Jede LED ist im Bereich des Schnittpunktes von Reihe und Spalte platziert. Wenn der Pegel für eine Reihe 1 ist und der Pegel der entsprechenden Spalte 0 ist, wird die LED in deren Schnittpunkt angehen. Beispiel: Wenn du die erste LED einschalten willst, stelle Pin 9 auf „HIGHPEGEL“ und Pin 13 auf „LOWPEGEL“ ein.
// Setzen eines Arrays um Buchstaben von „0“ zu speichern unsigned char Text[]={0x00,0x1c,0x22,0x22,0x22,0x22,0x22,0x1c}; void Draw_point(unsigned char x,unsigned char y) // Zeichne-Punkt Funktion { clear_(); digitalWrite(x+2, HIGH); digitalWrite(y+10, LOW); delay(1); } void show_num(void) // Anzeige-Funktion, ruft Zeichne-Punkt Funktion auf { unsigned char i,j,data; for(i=0;i<8;i++) { data=Text[i]; for(j=0;j<8;j++) { if(data & 0x01)Draw_point(j,i); data>>=1; } } } void setup(){ int i = 0 ; for(i=2;i<18;i++