Hallo Leute,
kapier da was wohl gar nicht. Habe jetzt einige Sketche die ploetzlich ohne Ausgabe sind und keinen Plan warum. Habe noch einen Sketch gefunden der gibt noch wie gewohnt aus, es geht um eine BlinkWithOutDelay Variante. Der andere Sketch wo jetzt nicht funktioniert ist eigentlich der gleiche, veraendert wurde er in der Zeile 3, aus:
int LED_1 = 3;
wurde
int LED_1 = LED_BUILTIN;
und ab Zeile 35 wurden vierfache Zeilen Ausgaben (der Optik wegen)auf eine gekuerzt. Erklaert sich selber wenn ihr es seht. Beide Sketche laufen, beide haben den selben USB Port, die richtige Bautrate und kompelieren natuerich auch normal.
Zuerst der Sketch der ohne Ausgabe im Seriellen Monitor ist.
int LED_1 = LED_BUILTIN;
int zaehler1 = 0;
int zaehler2 = 0;
int zaehler3 = 0;
int zaehler4 = 0;
unsigned long currentMillis = 0;
unsigned long previousMillis1 = 0;
unsigned long previousMillis2 = 0;
unsigned long previousMillis3 = 0;
unsigned long previousMillis4 = 0;
const long pause1 = 3500; //LED aus.
const long pause2 = 4000; //LED an.
const long pause3 = 6500; //LED aus.
const long pause4 = 9000; //LED an.
void setup() {
Serial.begin(9600);
pinMode(LED_1, OUTPUT);
}
void loop() {
if (zaehler1 < 2) {
digitalWrite(LED_1, HIGH); // If Bedingung wird nur einmal erfuellt (oder 2 mal, also 0 und 1).
}
if (zaehler1 < 4) { // Soll das duchzaehlen bis ultimo verhindern.
//Serial.print("Zaehler1: ");
//Serial.println(zaehler1);
if (currentMillis - previousMillis1 >= pause1) { //im ersten Durchlauf wird currentMillis
previousMillis1 = currentMillis; // an previusMillis1 uebergeben,
zaehler1 ++; // Wenn der Zaehler auf 2 steht
if (zaehler1 == 2){ // geht einmal die LED an.
digitalWrite(LED_1, LOW);
Serial.println("LED_1 aus. zaehler1 == 2");
}
}
}
if (zaehler2 < 4) {
//Serial.print("Zaehler2: ");
//Serial.println(zaehler2);
if (currentMillis - previousMillis2 >= pause2) {
previousMillis2 = currentMillis;
zaehler2 ++;
if (zaehler2 == 2){
digitalWrite(LED_1, HIGH);
Serial.println("LED_1 an. zaehler2 == 2");
}
}
}
if (zaehler3 < 4) {
//Serial.print("Zaehler3: ");
//Serial.println(zaehler3);
if (currentMillis - previousMillis3 >= pause3) {
previousMillis3 = currentMillis;
zaehler3 ++;
if (zaehler3 == 2){
digitalWrite(LED_1, LOW);
Serial.println("LED_1 an. zaehler3 == 2");
}
}
}
if (zaehler4 < 4) {
//Serial.print("Zaehler4: ");
//Serial.println(zaehler4);
if (currentMillis - previousMillis4 >= pause4) {
previousMillis4 = currentMillis;
zaehler4 ++;
if (zaehler4 == 2){
digitalWrite(LED_1, HIGH);
Serial.println("LED_1 an. zaehler4 == 2");
}
}
}
}
Und jetzt der fast gleiche Sketch, der aber auch im Monitor ausgibt.
int LED_1 = 3;
int zaehler1 = 0;
int zaehler2 = 0;
int zaehler3 = 0;
int zaehler4 = 0;
unsigned long previousMillis1 = 0;
unsigned long previousMillis2 = 0;
unsigned long previousMillis3 = 0;
unsigned long previousMillis4 = 0;
const long pause1 = 2000; //LED aus.
const long pause2 = 7000; //LED an.
const long pause3 = 15000; //LED aus.
const long pause4 = 20000; //LED an.
void setup() {
Serial.begin(9600);
pinMode(LED_1, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
if (zaehler1 < 2) {
digitalWrite(LED_1, HIGH); // Das wird nur wichtig wenn der Sketch an einem Umschalter haengt // also von Programm 1 zu 2.
}
if (zaehler1 < 4) {
//Serial.print("Zaehler1: ");
//Serial.println(zaehler1);
if (currentMillis - previousMillis1 >= pause1) {
previousMillis1 = currentMillis;
zaehler1 ++;
if (zaehler1 == 2){
digitalWrite(LED_1, LOW);
Serial.println("LED_1 aus. zaehler1 == 2");
Serial.println("LED_1 aus. zaehler1 == 2");
Serial.println("LED_1 aus. zaehler1 == 2");
Serial.println("LED_1 aus. zaehler1 == 2");
}
}
}
if (zaehler2 < 4) {
//Serial.print("Zaehler2: ");
//Serial.println(zaehler2);
if (currentMillis - previousMillis2 >= pause2) {
previousMillis2 = currentMillis;
zaehler2 ++;
if (zaehler2 == 2){
digitalWrite(LED_1, HIGH);
Serial.println("LED_1 an. zaehler2 == 2");
Serial.println("LED_1 an. zaehler2 == 2");
Serial.println("LED_1 an. zaehler2 == 2");
Serial.println("LED_1 an. zaehler2 == 2");
}
}
}
if (zaehler3 < 4) {
//Serial.print("Zaehler3: ");
//Serial.println(zaehler3);
if (currentMillis - previousMillis3 >= pause3) {
previousMillis3 = currentMillis;
zaehler3 ++;
if (zaehler3 == 2){
digitalWrite(LED_1, LOW);
Serial.println("LED_1 aus. zaehler3 == 2");
Serial.println("LED_1 aus. zaehler3 == 2");
Serial.println("LED_1 aus. zaehler3 == 2");
Serial.println("LED_1 aus. zaehler3 == 2");
}
}
}
if (zaehler4 < 4) {
//Serial.print("Zaehler4: ");
//Serial.println(zaehler4);
if (currentMillis - previousMillis4 >= pause4) {
previousMillis4 = currentMillis;
zaehler4 ++;
if (zaehler4 == 2){
digitalWrite(LED_1, HIGH);
Serial.println("LED_1 an. zaehler4 == 2");
Serial.println("LED_1 an. zaehler4 == 2");
Serial.println("LED_1 an. zaehler4 == 2");
Serial.println("LED_1 an. zaehler4 == 2");
}
}
}
}
Ich komme nicht drauf, wahrscheinlich was einfaches. Ich moechte mich schon mal fuer die Hilfe im Voraus bedanken.
Gruesse,
gutschy
