Spannungsteiler

Hallo Leute,

ich habe versucht an meinem Arduino versucht einen Spannnungsteiler zu coden, der immer die Spannung in 1 Volt Schritten bis 5 Volt von alleine erhöht. Dieser Anstieg der Spannung wird durch 5 LED's visualisiert. Jedoch leuchtet immer nur die erste LED und die "Überprüfungs LED" leuchtet nur einmal auf. Wäre cool wenn jemand den Fehler findet - ich bin schon am verzweifeln.

LG

Hier der Code:

int Messoutput = A1; 
int Spannung[] = {0, 51, 102, 153, 204, 255};
int sp=0;
int Running = 6;
char Str1[] = {'1V', '2V', '3V', '4V', '5V'};
void setup() {
pinMode(Messoutput, OUTPUT);  
Serial.begin(9600);
pinMode(Running, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}

void loop() {
if (sp < 256){
 digitalWrite(Running, HIGH); // Überprunfungs LED, ob der Code läuft
 delay(1000);
 digitalWrite(Running, LOW);
 delay(1000);
}
 else{
 digitalWrite(Running, LOW);
}
 
     analogWrite(Messoutput, sp);
     if (sp<=51)
     {
      digitalWrite(1, HIGH);
       }
       else if(sp>51 && sp<=102)
       {
        digitalWrite(1, HIGH);
        digitalWrite(2, HIGH);
         }
         else if(sp<102 && sp<=153)
       {
        digitalWrite(1, HIGH);
        digitalWrite(2, HIGH);
        digitalWrite(3, HIGH);
         }        
         else if(sp<153 && sp<=204)
       {

        digitalWrite(1, HIGH);
        digitalWrite(2, HIGH);
        digitalWrite(3, HIGH);
        digitalWrite(4, HIGH);
         }
         else if(sp<204 && sp<=255)
       {
        digitalWrite(1, HIGH);
        digitalWrite(2, HIGH);
        digitalWrite(3, HIGH);
        digitalWrite(4, HIGH);
        digitalWrite(5, HIGH);
         }
         else
         {
           digitalWrite(1, LOW);
           digitalWrite(2, LOW);
           digitalWrite(3, LOW);
           digitalWrite(4, LOW);
           digitalWrite(6, LOW);
           }
     delay(2000);
     for(sp=0;sp < 256; sp = sp + 51)   
     {}     
 }

Spannungsteiler.ino (1.63 KB)

 else if(sp<102 && sp<=153)

wenn sp kleiner als 102 ist, ist sp immer kleiner als 153

int Running = 6;

du nutzt Running als digitalen Ausgang, daher ist Running=6 recht sinnfrei,
bessser

bool Runnung = 1;

versuch es mal so:

int Messoutput = A1; 
int Spannung[] = {0, 51, 102, 153, 204, 255};
int sp=0;
bool Running = 1;
//char Str1[] = {'1V', '2V', '3V', '4V', '5V'};
void setup() {
pinMode(Messoutput, OUTPUT);  
Serial.begin(9600);
pinMode(Running, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}

void loop() {
if (sp < 256){
  digitalWrite(Running, HIGH);
  delay(1000);
  digitalWrite(Running, LOW);
  delay(1000);
}
  else{
  digitalWrite(Running, LOW);
}

  
      for(sp=0;sp < 256; sp = sp + 51)   
      {
      analogWrite(Messoutput, sp);
      if (sp<=51)
      {
       digitalWrite(1, HIGH);
        }
        else if(sp>51 && sp<=102)
        {
         digitalWrite(1, HIGH);
         digitalWrite(2, HIGH);
          }
          else if(sp>102 && sp<=153)
        {
         digitalWrite(1, HIGH);
         digitalWrite(2, HIGH);
         digitalWrite(3, HIGH);
          }        
          else if(sp>153 && sp<=204)
        {

         digitalWrite(1, HIGH);
         digitalWrite(2, HIGH);
         digitalWrite(3, HIGH);
         digitalWrite(4, HIGH);
          }
          else if(sp>204 && sp<=255)
        {
         digitalWrite(1, HIGH);
         digitalWrite(2, HIGH);
         digitalWrite(3, HIGH);
         digitalWrite(4, HIGH);
         digitalWrite(5, HIGH);
          }
          else
          {
            digitalWrite(1, LOW);
            digitalWrite(2, LOW);
            digitalWrite(3, LOW);
            digitalWrite(4, LOW);
            digitalWrite(6, LOW);
            }
      delay(2000);
      }
      
  }

Hi

Deine FOR-Schleife am Ende macht nicht, was Du erwartest.

Setze bitte Deinen Sketch trotzdem in Code-Tags.
Entferne VORHER unnötige Leerzeilen - einzelne Leerzeilen können Struktur bringen, als Massenware sind Sie aber extrem störend.
Versuche auch Mal STRG+T in der IDE - Das rückt Dir den Sketch so ein, wie die Klammern Das vorgeben - dadurch lässt sich der Sketch wesentlich besser lesen.

MfG