Sketch läuft plötzlich nichtmehr durch

Hallo ihr Arduino-infizierten,

ich bin seit ca 1 Woche am Testen und verzweifeln.

Ich habe ein Sketch mit einem nrf24l01 geschrieben. Das Ganze hat auch gut funktioniert. Nun habe ich allerdings einen Fehler in der Hardware festgestellt. Ich hatte einen 5V Laserpointer an die 9V Spannungsversorgung angeschlossen. Dieser ging mir ständig kaputt, bis ich schließlich meinen Fehler bemerkt habe. Also habe ich den Laser an 5V über einen 7805 Spannungsregler gelötet, der direkt von der 9V Spannungsquelle versorgt wird. Hing also vorher und auch nachher eigentlich nie direkt an meinem UNO. Nun kommt das große ABER: Mein Sketch funktioniert plötzlich nicht mehr! WARUM???
Ich habe den Fehler bereits soweit eingegrenzt, dass der Sketch nur bis zum ersten “radio.Write” kommt. (Konnte ich durch den Serialmonitor auf genau diese Zeile eingrenzen)
Ich bin aber mitlerweile mit meinem Latein am Ende (War schon in der Schule scheiße in Latein :sleeping: ) und komm nicht weiter. Mir sind die Ideen ausgegangen, was ich noch versuchen könnte. Bisher gemacht:
-Mit einem anderen UNO versucht
-Jede verbindung in der Hardware überprüft
-nRF24l getauscht
-Kondensator am nrf24L eingebaut
-…

Ich bin auf eure Hilfe angewiesen und möchte mich schon jetzt dafür bedanken. Ich hoffe meine genannten Informationen reichen für eine erste Analyse. Solltet Ihr aber noch andere Details benötigen werde ich diese natürlich nachreichen.

#include<SPI.h>
#include<nRF24L01.h>
#include<printf.h>
#include<RF24.h>
#include<RF24_config.h>
#include<Bounce2.h>
#include<Servo.h>
//__________________________________________________________



//Alle nRF Adressen
const byte rxAddr[][6] = {"null" , "eins" , "zwei" , "drei" , "vier" , "fuenf"};
RF24 radio(7, 8); //An welchen pin der nrf angeschlossen ist. FÜr alle UNO gleich, beim MEGA 49,53
//_______________________________________________________________



//Alle möglichen zu übermittelten Befehle
struct packet {
  byte befehl1;
  byte befehl2;
}

packet;
enum {
  AESS,
  AEKS,
  AESU,
  AESI,
  AEAL,
  AEPA,
  AZSS,
  AZKS,
  AZSU,
  AZSI,
  AZAL,
  AZPA,
  ADSS,
  ADKS,
  ADSU,
  ADSI,
  ADAL,
  ADPA,
  AVSS,
  AVKS,
  AVSU,
  AVSI,
  AVAL,
  AVPA,
  AFSS,
  AFKS,
  AFSU,
  AFSI,
  AFAL,
  AFPA,
  MDSE,
  MDSZ,
  MDSD,
  MDSV,
  MDSF,
  MDPA,
  MDAE,
  MDAZ,
  MDAD,
  MDAV,
  MDAF,
  AETT,
  AZTT,
  ADTT,
  AVTT,
  AFTT,
};
//_______________________________________________________________________



//Alle Schalter und Buttons wo angeschlossen
Servo Horizontal;//Servo mit dem Namen Horizontal
Servo Vertikal;//Servo mit dem Namen Vertikal

int pos;//Positionsvariable für Servo Horizontal
int poos;//Positionsvariable für Servo Vertikal

int startknopf = 9; //Zuweisung an welchem Pin Startknopf angeschlossen ist
int knopfzustand = LOW;

int fehler = 4; //Zuweisung an welchem Pin LED ROT angeschlossen ist
int pruefen = 5; //Zuweisen an welchem Pin LED ORANGE angeschlossen ist
int gefunden = 6; //Zuweisen an welchem Pin LED GRÜN angeschlossen ist

int servosignal = 10; //Zuweisen an welchem Pin Transistor für Servos angeschlossen ist

bool y;
bool z;
bool g;
bool x;
unsigned long vor = 0;
unsigned long in = 0;
unsigned long zuerst = 0;
unsigned long danach = 0;

int sensorValue;

int pausezeit = 100; //definiert wie lange Schranke offen ist>>>>>>> ÄNDERN  <<<<<<<<<<<<<<
//____________________________________________________________________________________



//======================================================================================
//Ab hier Setup
void setup() {
  //Serial Einschalten
  Serial.begin(9600);
  //_____________________________________________________________________________________



  //Input unbd Output definieren
  pinMode(fehler, OUTPUT);
  pinMode(pruefen, OUTPUT);
  pinMode(gefunden, OUTPUT);
  pinMode(servosignal, OUTPUT);
  pinMode(startknopf, INPUT);

  Horizontal.attach(3);//an welchem Pin das Servo angeschlossen ist
  Vertikal.attach(2);//an welchem Pin das Servo angeschlossen ist

  y = LOW;
  z = LOW;
  g = LOW;
  x = LOW;
  //_____________________________________________________________________________________________



  //nRF anschalten und Adresse zuweisen
  radio.begin();
  radio.openReadingPipe(1, rxAddr[1]);//>>>>>>>>>>>>>>>  HIER ADRESSE ÄNDERN   <<<<<<<<<<<<<<<<<<<<<<<
  radio.setPALevel(RF24_PA_MIN);
  radio.enableDynamicPayloads();
  radio.startListening();
  //________________________________________________________________________________________________




}

//==============================================================================================
//Ab hier Loop
void loop() {


  digitalWrite(fehler, HIGH);
  digitalWrite(pruefen, LOW);
  digitalWrite(gefunden, LOW);
  digitalWrite(servosignal, HIGH);

  Horizontal.write(0);//Startwinkel
  Vertikal.write(0);//Startwinkel

  //LESEN UND SENDEN DER SOLARZELLE
  sensorValue = analogRead(A1);
  radio.stopListening();
  radio.openWritingPipe(rxAddr[5]); //>>>>>>>>>>>>>>>>>>>> Adresse des UNO vorher eingeben <<<<<<<<<<<<<<<<
  if (sensorValue > 25) { //>>>>>>>>>>>>>>>>>>>>>>>>>>>>Schwellenwert anpassen <<<<<<<<<<<<<<<<
    packet.befehl1 = AESS; //>>>>>>>>>>>>>>>>>>>>>>>>>>>Befehl ANPASSEN<<<<<<<<<<<<<<<<<<<<<<<<<
    Serial.println(sensorValue);
    radio.write(&packet, sizeof(packet));
Serial.println("Test");
  }
  if (sensorValue < 20) { //>>>>>>>>>>>>>>>>>>>>>>> Schwellenwert ANPASSEN<<<<<<<<<<<<<<<<<<
    packet.befehl1 = AETT; //>>>>>>>>>>>>>>>>>>>>> Befehl ANPASSEN <<<<<<<<<<<<<<<<<<<<<<
    Serial.println(sensorValue);
    radio.write(&packet, sizeof(packet));
Serial.println("Test");

  }
  radio.startListening();
  Serial.println(sensorValue);
  //ENDE DES SENDENS ===============================================================

Dann überlege doch mal, was du an dem Sketch geändert hast, nachdem dieser noch funktionierte.

Zusätzlich zu dem, was Dieter schreibt:

Gestalte Deinen Code bitte lesefreundlich und kommentiere ihn so, dass man nicht rätseln muss, wo Du schon eine kommentierte/erforderliche Änderung vorgenommen hast und wo nicht. So wie der Sketch jetzt aussieht, wundert es mich nicht, dass Du ratlos bist.

Wie zur Hölle soll es uns anders gehen?! Von der Lust, einen dermaßen schlecht lesbaren Sketch lesen zu wollen ganz abgesehen ...

Gruß

Gruß

Gregor

genau, das ist leider das Problem. Ich habe keine einzige Zeile im Code geändert??!?!?!?!?! Ich werde den sketch noch etwas lesbarer machen und hier wieder posten. Danke für die Hilfe schon mal

Blöde Frage, aber: gehört hinter AFTT wirklich ein Komma? Bitte nicht schlagen ;)

Das Glück des Tüchtigen! Ich denke ich habe das Problem gefunden. Es sieht so aus, dass es im Kabel zum nrf24l wohl einen Kabelbruch gibt! Muss jetzt noch auf einige Teile warten und dann werde ich alles noch einmal sauber löten. Hoffentlich bin ich dann mein Problem los! Danke für Eure Hilfe.