For-Variable 6 Taster

OP #4789257
Lesenswert?

Hallo,

ich bin dabei einen Sketch zu kürzen. Ich weiß bloß nicht genau was 
fehlt.
Vorweg die Funktion.
Eingang 1, schaltet Ausgang 1
Eingang 2, schaltet Ausgang 2
Eingang 3, schaltet Ausgang 3
Eingang 4, schaltet Ausgang 4
Eingang 5, schaltet Ausgang 5
Eingang 6, schaltet Ausgang 6

Ist der Eingang HIGH, dann Ausgang HIGH - Ist der Eingang LOW, dann 
Ausgang LOW

Anfangs hatte ich alle Ein/Ausgänge deklariert und 6 variablen 
genutzt(viel Tippen und kopieren). Fuktionierte ohne Probleme.
Dann hatte ich die Überlegung, dass man es bestimmt mit einer 
for-Variable genau so lösen könnte. Und da ist das Problem.
Was fehlt hier noch?
Danke für die hilfe.

const int TaPin[6] = {8,9,10,11,12,13};  //Eingang festlegen
const int LEDPin[6] = {2,3,4,5,6,7};     //Ausgang festlegen


void setup()
{
    Serial.begin(9600);
    for (int i = 0; i<6; i++)            // Von 1 bis 6
    {
      pinMode(TaPin[i], INPUT);          // Eingang zuordnen
      pinMode(LEDPin[i], OUTPUT);        // Eingang zuordnen
    }
   }

void loop ()
{
  for (int i = 0; i<6; i++)              //
  {
  if (TaPin[i] == HIGH )                 // Taster 1-6
  {
  digitalWrite(LEDPin[i], HIGH);         // Ausgang 1-6
  }
  else
  {
  digitalWrite(LEDPin[i], LOW);
}
}
}
OP #4789284
Lesenswert?

Danke für die Antwort,
ich nutze einen Ardoino Uno und nutze die Digitalen Ports auf dem Board.
Als Eingangssignale nutze ich Lichtschranken von 
Fischertechnik/Selbstgebaute mit Fotodioden(nur 1 oder 0 Signal).

Pinbelegung:

Pin 2-7 Ausgang
Pin 8-13 Eingang

Der Schaltplan ist nicht Falsch, da bin ich im ziemlich sicher.
Lichtschranke auf Eingang.
Ausgang auf Relais.

Es lief ja vorher mit dem anderen Code.
#4789320
Lesenswert?

Dieter F. schrieb:
> Joe F. schrieb:
>> lass' mal das "const" bei den array deklarationen weg.
>
> Warum?

Weil const manchmal (Un-)Variablen in den Programspace verschiebt, was 
u.U. Probleme machen kann. Es war nur als Versuch gemeint, vermutlich 
macht es keinen Unterschied.

Leo C. hat den echten Fehler ja entdeckt. Ist mir auch durch die Lappen 
gegangen.

Nachtrag:
Besser wäre natürlich sowieso, den ganzen 8-Bit Port auf einmal 
umzukopieren.
Das sieht das Ardouino-Universum aber vermutlich nicht vor...
1
PORTD = (PORTB)>>2;
Gast #4789332
Lesenswert?

Joe F. schrieb:
> Weil const manchmal (Un-)Variablen in den Programspace verschiebt, was
> u.U. Probleme machen kann.

Wenn er nur liest (lt. Code-Strecke) sehe ich da kein Problem.

Wenn er aber nicht den kompletten Code zeigt - bzw. den "bisher 
funktionierenden" Code auch nicht zeigt und seine Schaltung / seinen 
Schaltplan nicht offen legt - ist ihm nur schwer zu helfen.
OP #4789337
Lesenswert?

Oh man, danke...
Es funktioniert. Gibt es sonst noch Optimierungsbedarf?
Ich weiß wohl das ich mit dem Beschreiben // noch Probleme habe.
Bin noch nicht so lange mit dem System vertraut.

Der Code lautet nun wie folgt:

int TaPin[6] = {8,9,10,11,12,13};  //Eingang festlegen
int LEDPin[6] = {2,3,4,5,6,7};     //Ausgang festlegen

void setup()
{
    Serial.begin(9600);
    for (int i = 0; i<6; i++)            // Von 1 bis 6
    {
      pinMode(TaPin[i], INPUT);          // Eingang zuordnen
      pinMode(LEDPin[i], OUTPUT);        // Eingang zuordnen
    }
   }

void loop ()
{
  for (int i = 0; i<6; i++)
  {
  int va1_1=(digitalRead(TaPin[i]));
  if (va1_1 == HIGH)
   {
    digitalWrite(LEDPin[i], LOW);
   }
    else
    {
    digitalWrite(LEDPin[i], HIGH);
    }
  }
}
OP #4789356
Lesenswert?

@Autor: Joe F. (easylife)
@Autor: Dieter F. (jim_quakenbush)
@Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)

Ich danke euch für eure Hilfe.
Wenn ihr klären wollte was nun besser ist von wegen:

Matthias S. schrieb:
> Dieter F. schrieb:
>> Matthias S. schrieb:
>>> PORTD = PINB;
>>
>> Was ist daran besser?

Bitte ich euch ein neues Topic zu erstellen.
Mein E-Mail Konto explodiert gleich, Danke.
Gast #4789378
Lesenswert?

Addi S. schrieb:
> Dann klärt mich bitte auf, tut mir leid. Dachte das wäre etwas Abseits
> von meinem Thema.

Deinen Account muss man sich wohl merken müssen ... :-)

Addi S. schrieb:
> Und da ist das Problem.
> Was fehlt hier noch?
> Danke für die hilfe.

Welches Thema - wenn Du uns wesentliche Veränderungen nicht transparent 
machst, wie soll Dir dann qualifiziert geholfen werden? Natürlich wird 
auch über "Randbedingungen" diskutiert. Interessant ... würde Spock 
sagen ...
OP #4789387
Lesenswert?

Dieter F. schrieb:
> Addi S. schrieb:
>> Dann klärt mich bitte auf, tut mir leid. Dachte das wäre etwas Abseits
>> von meinem Thema.
>
> Deinen Account muss man sich wohl merken müssen ... :-)
>

Ich hoff das ist jetzt nicht negativ gemeint....

Den link werde ich mir genauer zuführen lassen, danke.
https://www.arduino.cc/en/Reference/PortManipulation

Ansonsten ist für mich im Moment alles geklärt, bin wie gesagt noch 
nicht so in der Materie.
(Firma: matzetronics) #4789438
Lesenswert?

Dieter F. schrieb:
> Liest Du auch den bezogenen Post?

Dieter F. schrieb:
> Di weißt, dass Tasten üblicher Weise prellen?

Anscheinend liest du nicht so alles. Es sind gar keine Taster am 
Arduino, sondern Lichtschranken:

Addi S. schrieb:
> Als Eingangssignale nutze ich Lichtschranken von
> Fischertechnik/Selbstgebaute mit Fotodioden(nur 1 oder 0 Signal).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren