Hallo Gemeinde,
komme aus dem Maschinenbau und beschäftige mich seit ein Paar Wochen mit dem Arduino.
Projekt: Lichtspots mit dem Arduino schalten.
Beispiel: Taster 1: Spot 1-5
Taster 2: Spot 4-7
Taster 3: alles aus (als Beispiel)
Problem: Taster schalten nciht wie die sollen, oder
Relais schaltet nicht, nur die LED am Relais glimmt.
Relais hat eine eigene 5V Spannungsversorgung, Ground ist mit Ground Arduino verbunden. Sitze schon seit Tagen daran.....es muss doch einfach zu machen sein...
wollte die Pins in einer Liste als OUT bzw.INPUT zuweisen, das klappt gar nicht. also alles manuell....
Über ein Paar Tipps wäre ich sehr dankbar.....gestern mehre Stunden daran verbracht...die Frau macht schon Ärger
Gruß,
Martin
//Konstanten
const int tasterpin10 = 10; // pin des tasters
const int tasterpin11 = 11; // pin des tasters
const int tasterpin12 = 12; // pin des tasters
const int tasterpin13 = 13; // pin des tasters
const int ledpin2 = 2; //pin relais
const int ledpin3 = 3; //pin relais
const int ledpin4 = 4; //pin relais
const int ledpin5 = 5; //pin relais
//Variablen
int tasterstatus10 = LOW; //signal vom taster
int tasterstatus11 = LOW; //signal vom taster
int tasterstatus12 = LOW; //signal vom taster
int tasterstatus13 = LOW; //signal vom taster
int zustand = LOW;
int tastergedrueckt10 = 0; // abfragen ob taster gedrückt war
int tastergedrueckt11 = 0; // abfragen ob taster gedrückt war
int tastergedrueckt12 = 0; // abfragen ob taster gedrückt war
int tastergedrueckt13 = 0; // abfragen ob taster gedrückt war
int lichtmodus1 = 0; // lichtprogramme
int lichtmodus2 = 0; // lichtprogramme
int lichtmodus3 = 0; // lichtprogramme
int lichtmodus4 = 0; // lichtprogramme
int ledstatus1 = LOW; //aktueller zustand led
int ledstatus2 = LOW; //aktueller zustand led
int ledstatus3 = LOW; //aktueller zustand led
int ledstatus4 = LOW; //aktueller zustand led
unsigned long tasterzeit10 = 0; //zeit beim drücken des tasters
unsigned long tasterzeit11 = 0; //zeit beim drücken des tasters
unsigned long tasterzeit12 = 0; //zeit beim drücken des tasters
unsigned long tasterzeit13 = 0; //zeit beim drücken des tasters
unsigned long entprellzeit = 200; //entprellzeit, anpassen !!
unsigned long ledmillis = 1000;
//int zaehler = 0;
void setup() {
Serial.begin(9600);
pinMode(ledpin2,OUTPUT); //ausgang
pinMode(ledpin3,OUTPUT);
pinMode(ledpin4,OUTPUT);
pinMode(ledpin5, OUTPUT);
pinMode(tasterpin10, INPUT_PULLUP);
pinMode(tasterpin11, INPUT_PULLUP);
pinMode(tasterpin12, INPUT_PULLUP);
pinMode(tasterpin13, INPUT_PULLUP);
}
void loop() {
// // taster 10 einlesen
tasterstatus10 = digitalRead(tasterpin10);
//wenn taster gedrückt ist
if (tasterstatus10 == LOW)
{
tasterzeit10 = millis(); // aktualisiere tasterzeit
tastergedrueckt10 = 1; // speichert, dass taster gedrückt wurde
}
if ((millis() - tasterzeit10 > entprellzeit) && tastergedrueckt10 == 1)
{
lichtmodus1++; // lichtmodus um 1 erhöht
tastergedrueckt10 = 0;
}
Serial.println(lichtmodus1);
//**************************************
// taster 11 einlesen
tasterstatus11 = digitalRead(tasterpin11);
//wenn taster gedrückt ist
if (tasterstatus11 == LOW)
{
tasterzeit11 = millis(); // aktualisiere tasterzeit
tastergedrueckt11 = 1; // speichert, dass taster gedrückt wurde
}
if ((millis() - tasterzeit11 > entprellzeit) && tastergedrueckt11 == 1)
{
lichtmodus2++; // lichtmodus um 1 erhöht
tastergedrueckt11 = 0;
}
Serial.println(lichtmodus2);
// // taster 12 einlesen
tasterstatus12 = digitalRead(tasterpin12);
//wenn taster gedrückt ist
if (tasterstatus12 == LOW)
{
tasterzeit12 = millis(); // aktualisiere tasterzeit
tastergedrueckt12 = 1; // speichert, dass taster gedrückt wurde
}
if ((millis() - tasterzeit12 > entprellzeit) && tastergedrueckt12 == 1)
{
lichtmodus3++; // lichtmodus um 1 erhöht
tastergedrueckt12 = 0;
}
Serial.println(lichtmodus3);
//**************************************
// // taster 13 einlesen
tasterstatus13 = digitalRead(tasterpin13);
//wenn taster gedrückt ist
if (tasterstatus13 == LOW)
{
tasterzeit13 = millis(); // aktualisiere tasterzeit
tastergedrueckt13 = 1; // speichert, dass taster gedrückt wurde
}
if ((millis() - tasterzeit13 > entprellzeit) && tastergedrueckt13 == 1)
{
lichtmodus4++; // lichtmodus um 1 erhöht
tastergedrueckt13 = 0;
}
Serial.println(lichtmodus4);
//**************************************
//************************** Leuchtprogramme***************+
//taster 10
//wenn taster nciht gedrückt, licht aus
if (lichtmodus1 == 0)
{
digitalWrite(ledpin2, HIGH);
digitalWrite(ledpin4, HIGH);
}
if (lichtmodus1 == 1) //led an
{
digitalWrite(ledpin2, LOW);
digitalWrite(ledpin4, LOW);
}
if (lichtmodus1 >= 2)
{
//lichtmodus = 0;
digitalWrite(ledpin2, HIGH);
digitalWrite(ledpin4, HIGH);
lichtmodus1 = 0;
}
//taster 11 lichtmodus11111111111111111111111111111111111111111111
//wenn taster nciht gedrückt, licht aus
if (lichtmodus2 == 0)
{
digitalWrite(ledpin2, HIGH);
digitalWrite(ledpin5, HIGH);
}
if (lichtmodus2 == 1) //led an
{
digitalWrite(ledpin2, LOW);
digitalWrite(ledpin5, LOW);
}
if (lichtmodus2 >= 2)
{
//lichtmodus = 0;
digitalWrite(ledpin2, HIGH);
lichtmodus2 = 0;
}
//taster 12 lichtmodus3333333333 alles aus
//wenn taster nciht gedrückt, licht aus
if (lichtmodus3 == 0)
//{
//digitalWrite(ledpin2, HIGH);
//digitalWrite(ledpin4, HIGH);
//}
if (lichtmodus3 == 1) //led an
{
digitalWrite(ledpin2, HIGH);
digitalWrite(ledpin3, HIGH);
digitalWrite(ledpin4, HIGH);
digitalWrite(ledpin5, HIGH);
}
if (lichtmodus3 >= 2)
{
//lichtmodus = 0;
digitalWrite(ledpin2, HIGH);
digitalWrite(ledpin4, HIGH);
lichtmodus3 = 0;
}
//taster 13 lichtmodus44444444444444444444444444444444444444444
//wenn taster nciht gedrückt, licht aus
if (lichtmodus4 == 0)
{
digitalWrite(ledpin2, HIGH);
digitalWrite(ledpin4, HIGH);
}
if (lichtmodus4 == 1) //led an
{
digitalWrite(ledpin2, LOW);
digitalWrite(ledpin4, LOW);
}
if (lichtmodus4 >= 2)
{
//lichtmodus = 0;
digitalWrite(ledpin2, HIGH);
digitalWrite(ledpin4, HIGH);
lichtmodus4 = 0;
}
}