Verzweiflung beim einbinden eines Schalters

Hallo Community, ich bin ein Frischling der versucht für sein Boba Fett Cosplay Kostüm einige Sachen zu realisieren und in die Thematik Arduino einzusteigen.

Folgendes ist mein Plan:

Boba Fett hat an seine linken Armschiene eine kleine Rakete. Den Kopf der Rakete möchte ich mit LEDs bestücken die versetzt angehen. Es sind immer jeweils 3 Stück untereinander und insgesamt 12 paar.
Die 3 untereinander hängen immer an einem Pin so das sie beim einschalten der Reihe rum angehen und leuchten sollen und wenn ich den Schalter aus drücke sollen sie entgegen dem Uhrzeigersinn auch versetzt wieder aus gehen.

int ledPin = 13;
int tasterPin = 14;
void setup(){
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(tasterPin, INPUT);
}
void loop(){
  if (digitalRead(tasterPin)==LOW){
    digitalWrite(13, HIGH);
    delay(80);
    digitalWrite(12, HIGH);
    delay(80);
    digitalWrite(11, HIGH);
    delay(80);
    digitalWrite(10, HIGH);
    delay(80);
    digitalWrite(9, HIGH);
    delay(80);
    digitalWrite(8, HIGH);
    delay(80);
    digitalWrite(7, HIGH);
    delay(80);
    digitalWrite(6, HIGH);
    delay(80);
    digitalWrite(5, HIGH);
    delay(80);
    digitalWrite(4, HIGH);
    delay(80);
    digitalWrite(3, HIGH);
    delay(80);
    digitalWrite(2, HIGH);
    delay(80);
  } else {
    digitalWrite(13, LOW);
    delay(80);
    digitalWrite(12, LOW);
    delay(80);
    digitalWrite(11, LOW);
    delay(80);
    digitalWrite(10, LOW);
    delay(80);
    digitalWrite(9, LOW);
    delay(80);
    digitalWrite(8, LOW);
    delay(80);
    digitalWrite(7, LOW);
    delay(80);
    digitalWrite(6, LOW);
    delay(80);
    digitalWrite(5, LOW);
    delay(80);
    digitalWrite(4, LOW);
    delay(80);
    digitalWrite(3, LOW);
    delay(80);
    digitalWrite(2, LOW);
    delay(80);    
  }
}

Das ist der Code dazu.

Als Board verwende ich ein arduino nano.


Bei dem Test auf der Seite funktioniert es. Nur im Reallife eben nicht. Erst wurde der Akku heiß was vermutlich am zu kleinen Wiederstand lag.

An den LEDs sind 220ohm Wiederstände und an dem Schalter ein 10k Wiederstand.

Irgendwie schein ich ein Denkfehler zu haben beim anschließen des Schalters.

Bitte seid gnädig mit dem Neuling und danke für jede Hilfe.

Was ist das für ein Akku und wie hast du den angeschlossen ?
Und Widerstand bitte nur mit i schreiben.

Und dein Taster macht beim Drücken einen Kurzschluss.

Fas liegt wohl daran, dass deine reale Verkabelung nicht mit deinem Schaltplan übereinstimmt --> irgendwo ist ein Kurzschluss


Das ist der Akku.

Angeschlossen habe ich es wie folgt(die wagos sind nur für den Test bevor ich es final löte):

An der wago neben dem Feuerzeug ist grnd vom Board, minus der LEDs, minus vom Schalter und minus vom Akkuanschluß bzw. der Pin A0 der das ganze auslösen soll.

Bei der anderen wago ist plus von Schalter, plus vom Akku und geht auf die 5V vom Board.

Und warum zeichnest du den Akku nicht in dein Schaltbild ein ?
Da wäre es alles verständlicher.

Aber nochmal:
Dein Taster macht einen Kurzschluss zwischen Plus und Minus des Akkus.
Hatte ich auch schon geschrieben. Einfach mal alles lesen.

Ein anderes Problem wird sein, dass der Akku für dein Projekt nicht reicht.

1 Like

Moin @biodisaster,

Du solltest auf @HotSystems hören...:wink:

Wenn Dein Akku dort angeschlossen wird, wo der rote Pfeil hinzeigt, dann erzeugt Dein Taster an den (besser: über die) blau markierten Stellen einen satten Kurzschluss...

Als kurzfristige Heizung "brauchbar" ...

Gruß
ec2021

1 Like

Auf Grund der Größe des Akkus, ideal für eine Handschuhheizung. :wink:

1 Like

Wie gesagt ich stecke noch in den Kinderschuhen und bin dabei es zu lernen. Beim Schaltbild ist es vermutlich nicht mit eingezeichnet weil bei der Simulation das ganze ohne Akku trotzdem funktioniert hat.

Würde ich morgen nochmal testen.

Habe ich das richtig verstanden das der Akku für mein Vorhaben überdimensioniert ist?

Bin davon ausgegangen das dass Board 5V vergnusen kann passt der Akku mit 3,7V.

Mhhh also muss ich nochmal überdenken wie ich den Schalter integriert bekomme ohne einen Kurzschluss zu verursachen.

Ist denn aber mit dem Code den ich geschrieben habe so erst mal alles stimmig?

Nein der Akku ist mit 3,7 Volt zu niedrig dimensioniert.

Du darfst den Taster nicht gleichzeitig an Plus und Minus der Versorgungsspannung anschließen. Je nachdem ob er den Pin auf GND oder 5 Volt ziehen soll, darfst du den Tasten nur mit einem Pin auf das Potential legen. Der andere Pintaster geht dann auf den Eingangspin des Arduino. Und du brauchst noch einen Pullup odrr Pulldown Widerstand.

Der Taster muß wie ein Spannungsteiler mit einem Widerstand in Reihe zwischen Versorgungsspannung und Masse angeschlossen werden. Der gemeinsame Anschluß von Widerstand und Taster kommt auf den Eingang.
Dieses Tutorial schein mir die Sachlage gut zu erklähren:

Die ersten Bilder sind wie man es nicht machen darf. Deine Variante ist nicht dabei, aber auch die darf man nicht machen.

Wobei der Taster immer an +5V angeschlossen werden soll (nicht an 3,3V).

Und erklährt was Pullup und wad Pulldown:

Grüße Uwe

Danke für eure Hilfe. Ich führe mir das morgen mal zu Gemüte und berichte ob es so geklappt hat.

Nein. Wenn der Arduino Nano 5V braucht dann musst du am Spannungsversorgungseingang des Arduino-Nano auch 5V haben. Bei 3.7V funktioniert das ganze nicht.

Der Akku ist heiß geworden. Auweia !
Auf dem Akku steht 15C das heißt der maximale Strom der da fliessen darf ist 2 Ah * 15C = 30A

Wie lange haste denn den Schalter auf Stellung "Akku wird heiß" stehen gehabt?

Bei 30A ist er innerhalb von 4 Minuten leer. Und ein Li-Ion-Akku verträgt es nicht wenn man ihn komplett leersaugt. Da sollten 20% Restkapazität drin bleiben.
Wenn dein Handy 0% Akku anzeigt dann sind das nicht 0% Akkuladung sondern immer noch 20% Akkuladung aber 0% die du noch entnehmen kannst.
Nur wenn 20% Rest drin bleiben schafft der Akku mehrere Hundert Lade/Entladezyklen.

Es gibt sogenannte Batterie-Management-Systeme kurz BMS
Die trennen den Akku vom Verbraucher wenn der Akku an der Untergrenze ankommt.
Die gibt es auch in klein für solche Akkugrößen.

Du kannst hier im Forum ganz viel Hilfe bekommen. Bei deinem derzeitigen Wissensstand solltest du vor dem Einschalten immer erst mal hier im Forum fragen.

Es gibt einen Arduino-Simulator bei dem man sich nicht anmelden muss (aber kann)
Der heißt WOKWI.com
Hier ist deine Verschaltung als WOKWI-Simulation
Nano-LED-Sequenzer - Wokwi ESP32, STM32, Arduino Simulator

code
int ledPin = 13;
int tasterPin = 14;

byte ledPins[] = {13,12,11,10,9,8,7,6,5,4,3,2};

const unsigned long verzoegerungsZeit = 80;

void setup() {
  Serial.begin(115200);
  Serial.println("Setup-Start");
  for (byte IndexNr = 0; IndexNr < 12;IndexNr++ ) {
    Serial.println(IndexNr);
    pinMode(ledPins[IndexNr], OUTPUT);
    digitalWrite(ledPins[IndexNr], HIGH);
    delay(500);
    digitalWrite(ledPins[IndexNr], HIGH);
  }
  pinMode(tasterPin, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(tasterPin) == LOW) {
    ledEinSequenz();
  } else {
    ledAusSequenz();
  }
}


void ledEinSequenz() {
  for (byte IndexNr = 0; IndexNr < 12; IndexNr++ ) {
    digitalWrite(ledPins[IndexNr], HIGH);
    delay(verzoegerungsZeit);
  }
}

void ledAusSequenz() {
  for (byte IndexNr = 0; IndexNr < 12; IndexNr++ ) {
    digitalWrite(ledPins[IndexNr], LOW);
    delay(verzoegerungsZeit);
  }
}
1 Like

Das ist echt cool. Danke dir. Dort habe ich meine Schaltung schon getestet gehabt (siehe Bilder oben). Aber dank deiner Anleitung habe ich verstanden wo mein Fehler bei meinem Plan lag.

Ja mein Wissensstand ist da noch im anfängermodus.
Aber andererseits lernt man ja oft durch Fehler.

Vielen Dank an alle Helfer :+1::+1::+1::+1::+1:

Bevor Du nun neue Akkus besorgst, hier noch ein Tipp:
Grundsätzlich können bestimmte AVR's auch mit 3,7 Volt versorgt werden (siehe Datenblatt). Selbst der auf dem Nano eingesetzte ATmega328, allerdings nicht mit 16 Mhz!
Wenn (!) Du Dein Projekt aus Platz- oder Gewichtsgründen also möglichst kompakt bauen musst, würde ich evt einen ATiny 2313 (oder notfalls auch einen ATMega 8L) hierfür verwenden. Beide würden problemlos mit den 3,7 Volt laufen (bei 1 Mhz). Allerdings müssen diese AVRs per ISP programmiert werden, da Du hier nicht die Vorteile einen Nanoboards (USB-Anschluss) hast.

1 Like

Andererseits einen Arduino Mini (Version für 3,3V) und dazupassenden USB Adapter wäre auch eine Lösung.
Da bleibt man im ArduinoUniversum und kann auch über USB hochladen.

Grüße Uwe

[EDIT] 3,3V Version klarer geschrieben[/EDIT]

2 Likes

Hallo Uwe,

stimmt, die Möglichkeit hat man auch noch :slightly_smiling_face:

Grüße Rob

Hinzu kommt, das die von Uwe genannte Version Anfänger freundlicher ist.
Das darf hier nicht ausser Acht gelassen werden.

1 Like

Mit der Spannungsangabe bei Akku wurde ich vorsichtig sein.

Was genau meinst Du damit?
Li-Ion-Akkus bewegen sich normalerweise im Bereich von 3 - 4,2 Volt, je nach Ladezustand und Belastung. Diese Werten liegen allesamt innerhalb der im Datenblatt angegebenen Spezifikationen.
Da es sich bei diesem Projekt um einen Standalone-Anwendung handelt, sehe ich da kein Problem (bin aber auch nur Hobbybastler).

Wieso?
Von einem LiPo Akku weiß man daß 3,7V die Nominelle Spannung ist und der bis 4,2V aufgeladen wird. Entladen ist er bei 3,5V bis 3,3V ( je nach Empfehlung und Entladestrom).

Grüße Uwe