Funduino Elevator – Arduino Compatible
FunduinoLast updated on
Die Module des Aufzugmodells einzeln programmieren
Was der Funduino Elevator ist
Die Bauteile der Bodenplatte
Die Bauteile des Aufzugturms
Die Pinbelegung im Überblick
1 / 8
Der kapazitive Schalter
Kapazitiven Schalter auslesen
int PowerPin = 34; // Sensor Pin
int sensorPin = 35; // Sensor Pin
void setup()
{
Serial.begin(9600); // Starten der seriellen Schnittstelle
pinMode(PowerPin, OUTPUT); // Der Sensor wird am Mikrocontroller als Eingang definiert.
pinMode(sensorPin, INPUT); // Der Sensor wird am Mikrocontroller als Eingang definiert.
}
void loop()
{
int sensorWert = digitalRead(sensorPin); // Sensorwert auslesen
// Wurde der Sensor berührt?
if (sensorWert == HIGH)
{
Serial.println("Der Sensor wurde aktiviert!");
delay(500);
}
}Beleuchtung schalten und Schalter zurücksetzen
Beispielcode 1: Schalter nach der Berührung zurücksetzen
int PowerPin = 34; // Spannungsversorgung über den Pin 3 geht an VCC des Sensors.
int sensorPin = 2; // Sensor Ausgangs-Pin
void setup() {
Serial.begin(9600);
pinMode(sensorPin, INPUT); // Sensoreingang am Mikrocontroller
pinMode(PowerPin, OUTPUT); // Spannungsausgang für den Schalter
digitalWrite(PowerPin, HIGH);
}
void loop() {
int sensorWert = digitalRead(sensorPin); // Lese Sensorwert.
// Wurde der Sensor berührt?
if (sensorWert == HIGH) {
Serial.println("Der Sensor wurde berührt!");
delay(1000);
// Schalte sensor aus.
digitalWrite(PowerPin, LOW); // Schalte den Strom vom Schalter aus.
delay(500);
digitalWrite(PowerPin, HIGH); // Schalte den Strom vom Schalter wieder ein.
}
}Beispielcode 2: Hintergrundbeleuchtung selbst schalten
int PowerPin = 34; // VCC von dem Sensor.
int sensorPin = 35; // Sensor Pin
void setup() {
Serial.begin(9600);
pinMode(sensorPin, OUTPUT); // Hier wird der Pin des Mikrocontrollers, der mit dem AusagnagsPin des Moduls verbunden ist, als Ausgang festgelegt.
pinMode(PowerPin, OUTPUT);
digitalWrite(PowerPin, HIGH); //Schalter aktivieren
}
void loop()
{
digitalWrite(sensorPin, HIGH); // LED des Touch-Moduls aktivieren
delay(500);
digitalWrite(sensorPin, LOW); // LED des Touch-Moduls deaktivieren
delay(500);
}Der Lautsprecher ohne MP3
Schema: tone und noTone
tone(9, 100); // Der Lautsprecher an Pin 9 wird mit der Tonhöhe „100“ aktiviert delay(1000); // Pause mit 1000 Millisekunden, also 1 Sekunde – Der Lautsprecher bleibt für diese Zeit aktiv. noTone(9); // Der Lautsprecher an Pin 8 wird deaktiviert
Codebeispiel 1: Einfache Tonerzeugung
void setup(){} //Im Setup werden keine Informationen benötigt. Die Spannungsausgabe für den Pin an dem der Lautsprecher eine Spannungsausgabe benötigt (PinMode OUTPUT), wird im Sketch durch den Befehl "tone" automatisch festgelegt.
void loop()
{
tone(9, 100); //Im Hauptteil wird nun mit dem Befehl "tone ( x , y )" ein Ton abgegeben…
delay(1000); //…mit einer Dauer von 1 Sekunde.
noTone(9); //Der Ton wird abgeschaltet.
delay(1000); //Der Lautsprecher bleibt eine Sekunde aus.
}Codebeispiel 2: Abwechselnde Tonhöhen
void setup(){}
void loop()
{
tone(9, 100);
delay(1000);
noTone(9); //An dieser Stelle geht der erste Ton aus.
Tone(9, 200); // Der zweite Ton mit der neuen Tonhöhe “200” ertönt.
delay(1000); //… und zwar für eine Sekunde.
noTone(9); // An dieser Stelle geht der zweite Ton aus und der Loop-Teil des Sketches beginnt von vorn.
}Die Lichtschranken
Lichtschranke auslesen
int messwert = 0; //Unter der Variablen "Messwert" wird später der Messwert der Lichtschranke gespeichert.
void setup()
{ //Hier beginnt das Setup.
Serial.begin(9600); //Die Kommunikation mit dem Seriellen Port wird gestartet.
}
void loop() //Hier beginnt der Hauptteil
{
messwert = digitalRead(50); //Die Signalausgabe der Lichtschranke wird ausgelesen und unter der Variable „messwert“ gespeichert. Wenn die Lichtschranke unterbrochen wird, speichert der Mikrocontroller den Wert "1", ansonsten "0".
Serial.print("Lichtschrankensignal= "); //Ausgabe am seriellen Monitor
Serial.println(messwert); //…und im Anschluss der Messwert "1" bei unterbrochener Schranke, ansonsten "0".
}Der Lautsprecher mit MP3
1 / 3
MP3-Modul in Minimalform
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void setup()
{
mySoftwareSerial.begin(9600);
myDFPlayer.volume(30); //Lautstärke auf Maximum (30)
}
void loop()
{
myDFPlayer.play(1); //Spielt die erste MP3-Datei ab
delay(3000); // Nach dem Abspielen der Datei pausiert der Sketch für drei Sekunden.
}Der Servomotor der Aufzugtür
Servomotor der Aufzugtür
#include <Servo.h> //Die Servobibliothek wird aufgerufen.
Servo servoblau; //Erstellt für das Programm ein Servo mit dem Namen „servoblau“.
void setup()
{
servoblau.attach(37); //Servo wird mit Pin 37 verbunden.
}
void loop()
{
servoblau.write(0); //Position 1 ansteuern mit dem Winkel 0°.
delay(3000); //Das Programm stoppt für 3 Sekunden.
servoblau.write(90); //Position 2 ansteuern mit dem Winkel 90°.
delay(3000); //Das Programm stoppt für 3 Sekunden.
servoblau.write(180); //Position 3 ansteuern mit dem Winkel 180°.
delay(3000); //Das Programm stoppt für 3 Sekunden.
}Den Motor über den Motortreiber steuern
Motor über den Motortreiber steuern
int GSM1 = 8;
int in1 = 6;
int in2 = 7;
void setup()
{
pinMode(GSM1, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
}
void loop()
{
digitalWrite(in1, HIGH); // Motor 1 beginnt zu rotieren
digitalWrite(in2, LOW);
analogWrite(GSM1, 200); // Motor 1 soll mit der Geschwindigkeit "200" (max. 255) rotieren
delay(2000);
digitalWrite(in1, LOW); // Durch die Veränderung von HIGH auf LOW (bzw. LOW auf HIGH) wird die Richtung der Rotation verändert.
digitalWrite(in2, HIGH);
delay(2000);
digitalWrite(in1, LOW); // Anschließend sollen die Motoren 2 Sekunden ruhen.
digitalWrite(in2, LOW);
delay(2000);
}Das OLED-Display
1 / 7
OLED-Display beschriften
#include <Wire.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"
#define I2C_ADDRESS 0x3C
SSD1306AsciiWire oled;
void setup() {
Wire.begin();
Wire.setClock(400000L);
oled.begin(&Adafruit128x64, I2C_ADDRESS);
}
void loop()
{
oled.setFont(System5x7); // Auswahl der Schriftart
oled.clear(); //Löschen der aktuellen Displayanzeige
oled.println("Viel"); //Text in der ersten Zeile. "Println" sorgt dabei für einen Zeilensprung.
oled.print("Erfolg!"); // Text in der zweiten Zeile. Da es keine dritte Zeile gibt, wird hier kein Zeilenumsprung benötigt.
delay (2000);
}Codereferenz
Rate the instructions