Hallo,
ich habe zwei getrennt funktionierende Programme, möchte aber eins daraus machen. Wie funktioniert das?
#define eingang A1 //Das Wort „eingang" steht jetzt für den Wert „A0" (Bezeichnung vom Analogport 0)
#define obenEnde 7 //Pins am besten immer mit define definieren da mit int zuviel Speicher unnötigt verbraucht wird.
#define untenEnde 8
#define Runter 10
#define Hoch 11
int sensorWert = 0; //Variable für den Sensorwert mit 0 als Startwert
void setup()//Hier beginnt das Setup.
{
Serial.begin(9600); //Die Kommunikation mit dem seriellen Port wird gestartet. Das benötigt man, um sich den tatsächlich ausgelesenen Wert später im serial monitor anzeigen zu lassen.
pinMode (Hoch, OUTPUT); //Der Pin mit der Relais für die Motorrichtung Oben
pinMode (Runter, OUTPUT); //Der Pin mit der Relais für die Motorrichtung Unten
pinMode(obenEnde, INPUT); //Der Pin mit dem Endschalter oben
pinMode(untenEnde, INPUT); //Der Pin mit dem Endschalter unten
//Der analoge Pin muss nicht definiert werden.
}
void loop()
{ //Mit dieser Klammer wird der Loop-Teil geöffnet.
sensorWert = analogRead(eingang); //Die Spannung an dem Fotowiderstand auslesen und unter der Variable „sensorWert" abspeichern.
Serial.print("Sensorwert = " ); //Ausgabe am Serial-Monitor: Das Wort „Sensorwert: „
Serial.println(sensorWert); //Ausgabe am Serial-Monitor. Mit dem Befehl Serial.print wird der Sensorwert des Fotowiderstandes in Form einer Zahl zwischen 0 und 1023 an den serial monitor gesendet.
if (sensorWert > 512 ) //Wenn der Sensorwert über 512 beträgt….
{
while (digitalRead(untenEnde) == LOW) //Solange der Endschalter unten nicht gedrückt wurde
{
digitalWrite(Runter, LOW); //fährt der Rolladen runter
}
digitalWrite(Runter, HIGH); //Danach schält das Relais aus
digitalWrite(Hoch, HIGH); //Danach schält das Relais aus
}
else //andernfalls…
{
while (digitalRead(obenEnde) == LOW) //Solange der Endschalter oben nicht gedrückt wurde
{
digitalWrite(Hoch, LOW); //fährt der Rollladen hoch
}
digitalWrite(Runter, HIGH); //Danach schält das Relais aus
digitalWrite(Hoch, HIGH); //Danach schält das Relais aus
}
delay (50);
}
void setup() {
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(A0);
float voltage = sensorValue * (4.68 / 1023.00);
Serial.println(voltage);
if (voltage < 2.15)
{
digitalWrite(13, LOW);
}
else
{
digitalWrite(13, HIGH);
}
delay(1000);
}
Ich habe versucht einfach beide hintereinander zu schreiben aber das funktioniert nicht.
#define eingang A1 //Das Wort „eingang" steht jetzt für den Wert „A0" (Bezeichnung vom Analogport 0)
#define obenEnde 7 //Pins am besten immer mit define definieren da mit int zuviel Speicher unnötigt verbraucht wird.
#define untenEnde 8
#define Runter 10
#define Hoch 11
int sensorWert = 0; //Variable für den Sensorwert mit 0 als Startwert
void setup() {
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
Serial.begin(9600); //Die Kommunikation mit dem seriellen Port wird gestartet. Das benötigt man, um sich den tatsächlich ausgelesenen Wert später im serial monitor anzeigen zu lassen.
pinMode (Hoch, OUTPUT); //Der Pin mit der Relais für die Motorrichtung Oben
pinMode (Runter, OUTPUT); //Der Pin mit der Relais für die Motorrichtung Unten
pinMode(obenEnde, INPUT); //Der Pin mit dem Endschalter oben
pinMode(untenEnde, INPUT); //Der Pin mit dem Endschalter unten
}
void loop() {
int sensorValue = analogRead(A0);
float voltage = sensorValue * (4.68 / 1023.00);
Serial.println(voltage);
if (voltage < 2.15)
{
digitalWrite(13, LOW);
}
else
{
digitalWrite(13, HIGH);
}
delay(1000);
sensorWert = analogRead(eingang); //Die Spannung an dem Fotowiderstand auslesen und unter der Variable „sensorWert" abspeichern.
Serial.print("Sensorwert = " ); //Ausgabe am Serial-Monitor: Das Wort „Sensorwert: „
Serial.println(sensorWert); //Ausgabe am Serial-Monitor. Mit dem Befehl Serial.print wird der Sensorwert des Fotowiderstandes in Form einer Zahl zwischen 0 und 1023 an den serial monitor gesendet.
if (sensorWert > 512 ) //Wenn der Sensorwert über 512 beträgt….
{
while (digitalRead(untenEnde) == LOW) //Solange der Endschalter unten nicht gedrückt wurde
{
digitalWrite(Runter, LOW); //fährt der Rolladen runter
}
digitalWrite(Runter, HIGH); //Danach schält das Relais aus
digitalWrite(Hoch, HIGH); //Danach schält das Relais aus
}
else //andernfalls…
{
while (digitalRead(obenEnde) == LOW) //Solange der Endschalter oben nicht gedrückt wurde
{
digitalWrite(Hoch, LOW); //fährt der Rollladen hoch
}
digitalWrite(Runter, HIGH); //Danach schält das Relais aus
digitalWrite(Hoch, HIGH); //Danach schält das Relais aus
}
delay (50);
}
Grüße Kai