Arduino Nano Kurzschluss durch Programm ?

Guten Tag
Ich habe schon mehrere kleine Projekte mit Arduinos umgesetzt. Nun habe ich ein Größeres Projekt vor. Nach aufspielen des Programms auf den Arduino Nano Blinkt die eingebaute Led (Pin 13) schnell, das heißt ->Kurzschluss, ohne das Irgendetwas angeschlossen ist. Ich poste euch einmal das Programm das Funktioniert und einmal das Programm wo es zum Kurzschluss kommt.

So läuft es aber ohne Neopixels,RFID Reader und ohne Mpu keinerlei Hardware angeschlossen !

//Neopixels
//#include <Adafruit_NeoPixel.h>
//#ifdef __AVR__
//#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
//#endif
//#define neopixel 13 // Hier wird angegeben, an welchem digitalen Pin die WS2812 LEDs bzw. NeoPixel angeschlossen sind
//#define NUMPIXELS 16 // Hier wird die Anzahl der angeschlossenen WS2812 LEDs bzw. NeoPixel angegeben
//Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, neopixel, NEO_GRB + NEO_KHZ800);
//int pause = 100; // 100 Millisekunden Pause bis zur Ansteuerung der nächsten LED.
//int pauseb = 200; //200 Millisekunden Pause bis zur Ansteuerung der nächsten LED.

// I2c Adresse NFC/RFID Reader 0x24
//#include <Wire.h>
//#include <PN532_I2C.h>
//#include <PN532.h>
//#include <NfcAdapter.h>
//PN532_I2C pn532_i2c(Wire);
//NfcAdapter nfc = NfcAdapter(pn532_i2c);
//#define PN532_I2C_ADDRESS (0x24)

// Mpu Bewegungssensor
//#include <math.h>
//const int MPU = 0x68;
//int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;
//double pitch, roll;

#include <Wire.h> 
#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); //Hier wird festgelegt um was für einen Display es sich handelt. In diesem Fall eines mit 16 Zeichen in 2 Zeilen und der HEX-Adresse 0x27. Für ein vierzeiliges I2C-LCD verwendet man den Code "LiquidCrystal_I2C lcd(0x27, 20, 4)" 

//LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
const byte ROWS = 4;
const byte COLS = 4; 
char keys[ROWS][COLS] = {
 {'1','2','3','a'},
 {'4','5','6','b'},
 {'7','8','9','c'},
 {'*','0','#','d'}
};
//byte rowPins[ROWS] = {A4, A5, 13, 12}; 
//byte colPins[COLS] = {A0, A1, A2, A3}; 
byte rowPins[ROWS] = {9, 8, 7, 6}; 
byte colPins[COLS] = {5, 4, 3, 2}; 

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );


char enteredText[8];
char password[8];
int key=-1;
char lastKey;
char var;
boolean passwordEnable=false;


char BT_RIGHT = '6';
char BT_UP = '2';
char BT_DOWN = '8';
char BT_LEFT = '4';
char BT_SEL = 'd';   
char BT_CANCEL = 'c';
char BT_DEFUSER = 'x';   // not implemented

//leds

const int REDLED = 10;
const int GREENLED = 11;
const int BLUELED = A0;

boolean mosfetEnable = false;
const int mosfet = 12;
//IS VERY IMPORTANT THAT YOU TEST THIS TIME. BY DEFAULT IS IN 1 SEC. THAT IS NOT TOO MUCH. SO TEST IT!
const int MOSFET_TIME = 15000;

//TIME INTS
int GAMEHOURS = 0;
int GAMEMINUTES = 45;
int BOMBMINUTES = 5;
int ACTIVATESECONDS = 5;

boolean endGame = false;

boolean sdStatus = false; //search and destroy game enable used in config
boolean saStatus = false; //same but SAbotaghe
boolean doStatus = false; //for DEmolition
boolean start = true;
boolean defuseando;
boolean cancelando;
// SOUND TONES
boolean soundEnable = true;
int tonepin = A3; 
int tonoPitido = 3000;
int tonoAlarma1 = 700;
int tonoAlarma2 = 2600;
int tonoActivada = 1330;
int errorTone = 100;

unsigned long iTime;
unsigned long timeCalcVar;
unsigned long redTime;
unsigned long greenTime;
unsigned long iZoneTime;
byte team=0;

void setup(){
 // Mpu Bewegungssensor
// Wire.begin();
// Wire.beginTransmission(MPU);
// Wire.write(0x6B);
// Wire.write(0);
// Wire.endTransmission(true);
//Nfc Rfid Tag
  // Serial.begin(9600);
  // Serial.println("NDEF Reader");
  // nfc.begin();
   
// Initialisierung der NeoPixel
//pixels.begin(); 

 lcd.begin(20, 4);
 Serial.begin(9600);
   lcd.init();                      
   lcd.backlight();
 lcd.setCursor(4,1);
 lcd.print("A I R S O F T");
 lcd.setCursor(5,2);
 lcd.print("S P I E L");
 keypad.setHoldTime(50);
 keypad.setDebounceTime(50);
 keypad.addEventListener(keypadEvent);
 delay(3000); 
 
 pinMode(GREENLED, OUTPUT);     
 pinMode(REDLED, OUTPUT); 
 pinMode(BLUELED, OUTPUT); 
 pinMode(mosfet, OUTPUT);

Spiele ich das Programm wie folgt auf Keine Hardware angeschlossen !

//Neopixels
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
#define neopixel 13 // Hier wird angegeben, an welchem digitalen Pin die WS2812 LEDs bzw. NeoPixel angeschlossen sind
#define NUMPIXELS 16 // Hier wird die Anzahl der angeschlossenen WS2812 LEDs bzw. NeoPixel angegeben
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, neopixel, NEO_GRB + NEO_KHZ800);
int pause = 100; // 100 Millisekunden Pause bis zur Ansteuerung der nächsten LED.
int pauseb = 200; //200 Millisekunden Pause bis zur Ansteuerung der nächsten LED.

// I2c Adresse NFC/RFID Reader 0x24
#include <Wire.h>
#include <PN532_I2C.h>
#include <PN532.h>
#include <NfcAdapter.h>
PN532_I2C pn532_i2c(Wire);
NfcAdapter nfc = NfcAdapter(pn532_i2c);
#define PN532_I2C_ADDRESS (0x24)

// Mpu Bewegungssensor
#include <math.h>
const int MPU = 0x68;
int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;
double pitch, roll;

#include <Wire.h> 
#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); //Hier wird festgelegt um was für einen Display es sich handelt. In diesem Fall eines mit 16 Zeichen in 2 Zeilen und der HEX-Adresse 0x27. Für ein vierzeiliges I2C-LCD verwendet man den Code "LiquidCrystal_I2C lcd(0x27, 20, 4)" 

//LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
const byte ROWS = 4;
const byte COLS = 4; 
char keys[ROWS][COLS] = {
 {'1','2','3','a'},
 {'4','5','6','b'},
 {'7','8','9','c'},
 {'*','0','#','d'}
};
//byte rowPins[ROWS] = {A4, A5, 13, 12}; 
//byte colPins[COLS] = {A0, A1, A2, A3}; 
byte rowPins[ROWS] = {9, 8, 7, 6}; 
byte colPins[COLS] = {5, 4, 3, 2}; 

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );


char enteredText[8];
char password[8];
int key=-1;
char lastKey;
char var;
boolean passwordEnable=false;


char BT_RIGHT = '6';
char BT_UP = '2';
char BT_DOWN = '8';
char BT_LEFT = '4';
char BT_SEL = 'd';   
char BT_CANCEL = 'c';
char BT_DEFUSER = 'x';   // not implemented

//leds

const int REDLED = 10;
const int GREENLED = 11;
const int BLUELED = A0;

boolean mosfetEnable = false;
const int mosfet = 12;
//IS VERY IMPORTANT THAT YOU TEST THIS TIME. BY DEFAULT IS IN 1 SEC. THAT IS NOT TOO MUCH. SO TEST IT!
const int MOSFET_TIME = 15000;

//TIME INTS
int GAMEHOURS = 0;
int GAMEMINUTES = 45;
int BOMBMINUTES = 5;
int ACTIVATESECONDS = 5;

boolean endGame = false;

boolean sdStatus = false; //search and destroy game enable used in config
boolean saStatus = false; //same but SAbotaghe
boolean doStatus = false; //for DEmolition
boolean start = true;
boolean defuseando;
boolean cancelando;
// SOUND TONES
boolean soundEnable = true;
int tonepin = A3; 
int tonoPitido = 3000;
int tonoAlarma1 = 700;
int tonoAlarma2 = 2600;
int tonoActivada = 1330;
int errorTone = 100;

unsigned long iTime;
unsigned long timeCalcVar;
unsigned long redTime;
unsigned long greenTime;
unsigned long iZoneTime;
byte team=0;

void setup(){
 // Mpu Bewegungssensor
Wire.begin();
Wire.beginTransmission(MPU);
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);
//Nfc Rfid Tag
   Serial.begin(9600);
   Serial.println("NDEF Reader");
   nfc.begin();
   
// Initialisierung der NeoPixel
pixels.begin(); 

 lcd.begin(20, 4);
 Serial.begin(9600);
   lcd.init();                      
   lcd.backlight();
 lcd.setCursor(4,1);
 lcd.print("A I R S O F T");
 lcd.setCursor(5,2);
 lcd.print("S P I E L");
 keypad.setHoldTime(50);
 keypad.setDebounceTime(50);
 keypad.addEventListener(keypadEvent);
 delay(3000); 
 
 pinMode(GREENLED, OUTPUT);     
 pinMode(REDLED, OUTPUT); 
 pinMode(BLUELED, OUTPUT); 
 pinMode(mosfet, OUTPUT);

startet das Programm nach dem aufspielen und der Arduino geht dazu über einen Kurzschluss anzuzeigen. Auch ein Reset ab und anstecken bringt keine änderung. Ein neubespielen egal mit welchem Programm geht auch nicht mehr da sofort nach start Kurzschluss.

Nun die Fragen was hab ich Falsch gemacht ?
Ist es möglich einen Arduino auf diesem wege einen Kurzschluss zu verpassen ?
Kann ich einen auf diesem wege Zerstörten Arduino Wiederbeleben ?

Ich hoffe es ist Verständlich, sollte ich etwas vergessen haben bitte Fragen. Sollte der Code als ganzes gebraucht werden so müsste ich ihn irgendwo Hochladen.

Vielen Dank

Hallo und willkommen im Forum.

Dein Sketch ist fast nicht zu lesen. In einem Mobilgerät überhaupt nicht.

Setze deinen Sketch bitte in Code-Tags.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Dazu den Sketch markieren und die Schaltfläche klicken, oder [code] davor und [/code] dahinter ohne *.
Das kannst du in deinem Startbeitrag noch nachträglich machen.

Damit wird dieser für alle besser lesbar.

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

Und lösche bitte vorher alle unnötigen Zeilen, z.B. die auskommentierten. Die machen den Sketch nicht besser lesbar.

(deleted)

Am Arduino ist nichts ausser der USB verbindung angeschlossen absolut keine anderen Teile. Keine Platine keine Bauteile. Der unterschied sind nur die Auskommentierten zeilen, auskommentiert funktioniert es nicht auskommentiert und ich hab einen Kurzen.

Gruß Alois

(deleted)

Der eingebaute Led blinkt schnell. Sollte ein Kurzschluss sein meines wissens nach.

Gruß Alois

(deleted)

aloisr: Der eingebaute Led blinkt schnell. Sollte ein Kurzschluss sein meines wissens nach.

Gruß Alois

Wie kommst du da drauf, dass es ein Kurzschluss ist ? Und welche Led blinkt ?

aloisr: Der eingebaute Led blinkt schnell. Sollte ein Kurzschluss sein meines wissens nach.

Wo hast Du denn das her? Die eingebaute Led hängt am Pin 13. Und der wird im 2. Sketch für die Ansteuerung des WS2812 genutzt:

#define neopixel 13 // Hier wird angegeben, an welchem digitalen Pin die WS2812 LEDs bzw. NeoPixel angeschlossen sind

Deshalb blinkt/flackert die Led.

Und du benutzt A4 und A5 für I2C aber auch für die Tastatur. Das geht nicht.

aloisr:
auskommentiert funktioniert es nicht auskommentiert und ich hab einen Kurzen.

was meinst Du?

aloisr:
auskommentiert funktioniert es, nicht auskommentiert und ich hab einen Kurzen.

oder

aloisr:
auskommentiert funktioniert es nicht, auskommentiert und ich hab einen Kurzen.

Sorry mein Fehler
Der unterschied sind nur die Auskommentierten zeilen, auskommentiert also nicht geladen funktioniert es nicht auskommentiert also eingebunden und ich hab den Fehler das nichts mehr geht ausser der Led blinkt.

Tastatur an D2-D9 die A anschlüsse werden nicht verwendet.

//byte rowPins[ROWS] = {A4, A5, 13, 12}; 
//byte colPins[COLS] = {A0, A1, A2, A3}; 
byte rowPins[ROWS] = {9, 8, 7, 6}; 
byte colPins[COLS] = {5, 4, 3, 2};

Es ist der NFC/RFID Tag mit

// I2c Adresse NFC/RFID Reader 0x24
#include <Wire.h>
#include <PN532_I2C.h>
#include <PN532.h>
#include <NfcAdapter.h>
PN532_I2C pn532_i2c(Wire);
NfcAdapter nfc = NfcAdapter(pn532_i2c);
#define PN532_I2C_ADDRESS (0x24)

sobald ich diese Zeilen einbinde geht der Arduino in den besagten Modus mit blinkender interner Led. Er wird von der Arduino IDE erkannt an COM3, Serieller Monitor meldet nix und Übertragen eines Programmes egal welches auch nicht mehr möglich.

(deleted)

Du kannst also in dieser Situation keinen Test-Sketch hochladen.

Dann poste doch mal, welche Fehlermeldung du bekommst.

Und du hast zwei Display-Libraries geladen.

#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal.h>

Die zweite davon brauchst du nicht.
Evtl. bereitet dir das die Probleme.

aloisr: Der eingebaute Led blinkt schnell. Sollte ein Kurzschluss sein meines wissens nach.

nein.

die LED hängt an 13. Und du hast die Neopixel auf 13 definiert. Daher blinkt die nun fröhlich mit.

Hallo,

abgesehen vom DoppelMoppel

#include <PN532_I2C.h>
#include <PN532.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal.h>

passt hier irgendwas nicht zusammen. Ohne loop kompiliert der Sketch nicht und bricht ab. Das heißt, dein Sketch wurde nicht übertragen. Kann es sein das noch der Auslieferungsblink Sketch drauf ist? Der blinkt nämlich standardmäßig.

Nimm erstmal den Blinksketch aus den IDE Beispielen. Ändere die delay Zeiten und flashe. Verändert sich was?

Zusatztipp:
In der IDE alle Ausgaben einschalten.
Datei > Voreinstellungen >

  • Ausführliche Ausgabe während > beide Haken rein
  • Compilerwarnungen > “ALLE”
    Zeilennummern und Codefaltung sind auch hilfreich.
    Speichern beim Überprüfen und Hochladen würde ich abschalten.

Ich konnte die Arduinos (4Stück die hängengeblieben sind) mit folgender Prozedur wiederbeleben

Ich habe den Arduino mit der Reset-Taste erfolgreich wiederhergestellt:

Schalten Sie die Karte aus (ich habe das USB-Kabel vom Computer getrennt) Halten Sie die Reset-Taste gedrückt Schließen Sie das USB-Kabel an (halten Sie die Reset-Taste gedrückt). Klicken Sie auf "Sketch hochladen". Warten Sie ein oder zwei Sekunden, bis die Arduino-Software in der Statusleiste "Uploading ..." anzeigt Lassen Sie die Reset-Taste los

Hier noch ein kurzes Video wo mann das Blinken sieht und die Prozedur https://youtu.be/R0cay-T_1uw

So da sie wieder gehen kann ich an meinem Programm weiter Tüfteln.

Vielen Dank euch für die Hilfe

Hallo,

schön das du sie wiederbeleben konntest. Nur wirft das Ergebnis im Grunde noch mehr Fragen auf, weil deine gezeigten Sketche nicht kompilieren. Jetzt wäre die Frage was hast du vorher wirklich draufgeladen?