INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Nano CH340 - Software Reset
17.03.2019, 10:37 (Dieser Beitrag wurde zuletzt bearbeitet: 17.03.2019 11:08 von Lite.)
Beitrag #1
Nano CH340 - Software Reset
Moin,

Ich habe einen China-Nano verbaut und teste nun ausgiebig meinen Sketch.
Gleich zu Beginn stößt mir sauer auf, daß der Nano beim Einschalten der Versorgungsspannung nicht betriebsbereit ist.
Das Gleiche passiert beim Übertragen des Sketches aus der IDE.
Erst wenn ich die Reset-Taste auf dem Nano drücke ist alles bereit und funktioniert.

Woran liegt das?
Gibt es eine einfache Lösung?

Danke & Gruß

Lite

P.S.:
Den hier habe ich dazu gefunden: https://forum-raspberrypi.de/forum/threa...no-reboot/
Aber das geht wohl auch nicht, da der Nano ja diesen Code wohl auch nicht ausführen wird.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2019, 11:49
Beitrag #2
RE: Nano CH340 - Software Reset
Da gibt es 2 Varianten.

1. Dein Sketch blockiert irgendwas
2. Dein Nano ist defekt

Ansonsten ist mir dieses Verhalten nicht bekannt.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2019, 12:05
Beitrag #3
RE: Nano CH340 - Software Reset
Danke für die Info Tommy.

Hmmm....hab gerade eine anderen, auch anders aufgebauten Nano probiert.
Das gleiche Problem.

Blockade des Sketches kann wodurch hervorgerufen werden, wenn er dann nach Reset doch funktioniert?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2019, 12:21
Beitrag #4
RE: Nano CH340 - Software Reset
Das weiß ich ohne Sketch auch nicht. Hast Du mal einen einfachen Blink-Sketch, z.B. Datei/Beispiele/Digital/BlinkWithoutDelay probiert?

Ich habe es gerade einen NANO probiert. Ergebnis nach dem Hochladen bzw. nach der Wartezeit von 1-2 Sekunden nach dem Anstecken startet das Programm problemlos, ohne dass ich Reset drücken muss.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2019, 12:42
Beitrag #5
RE: Nano CH340 - Software Reset
Ja, mit ´nem simplen Sketch geht es einwandfrei.

Meinen Sketch "kennst" Du schon:

Code:
//  BIBLIOTHEKEN EINBINDEN

//OneButton Headerdatei einbinden
#include <OneButton.h>
//Pin 12 als Taster-Eingang
OneButton button(12, true);

//LiquidCrystal_I2C Headerdatei für das LCD-Display einbinden
#include <LiquidCrystal_I2C.h>

//LCD 16x2 an Adresse 0x3F konfigurieren oder falls es nicht geht, ggf. an 0x3F
LiquidCrystal_I2C lcd(0x27, 16, 2);

//■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■​■■■■

//  ANALOGE PINS KONFIGURIEREN (A4 & A5 reserviert für den I2C-Bus)
//Analoger Pin A1 < Feuchtesensor
const byte Nass = 15;

//■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■​■■■■

//  DIGITALE PINS KONFIGURIEREN
//Digi Pin 9 > Mosfet > MV4 (Rohwasser > Osmosefilter-System)
const byte Rohwasser = 2;

//Digi Pin 3 < Schwimmerschalter NC (Behälter VOLL) per Interrupt (Int1)
const byte Voll = 3;

//Digi Pin 4 > Taster-LED (Anforderungstaster)
const byte TasterLED = 4;

//Digi Pin 5 > Mosfet > MV3 (Reinwasser > Glasbehälter)
const byte Reinwasser = 5;

//Digi Pin 6 > Mosfet > MV2 (Stehwasser > Abfluss)
const byte StehwasserSpuelung = 6;

//Digi Pin 1 > Mosfet > MV1 (Membranspülung > Abfluss)
const byte MembranSpuelung = 9;

//Digi Pin 13 > aktiver Piezo-Summer
const byte Piezo = 13;

//■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■​■■■■

//  VARIABLEN DEKLARIEREN
//Aktuell abgelaufene Füllzeit des Behälters in millis
unsigned long Fuellzeit = 0;

//Zeitpunkt der letzten Reinwasserproduktion in millis
unsigned long LastReinwasser = 0;


//ZUM TEST ALLE ZEITWERTE 710, also anstatt 5*60*1000L auf 5*60*100L
//Maximale Füllzeit (5min) des Behälters in millis
const long Fuellzeit_Grenzwert = (5 * 60 * 100UL);

//Maximale Pausen-Zeit (15min) für Stehwasser in millis
const long Stehzeit_Grenzwert = (15 * 60 * 100UL);

//Maximale Pausen-Zeit (6h) für Membranspülung in millis
const long Pause_Grenzwert = (6 * 60 * 60 * 100UL);

//(20s) für Membranspüldauer für die Nachspülung in millis
const long Spuelzeit_Membran = (20 * 100UL);

//(3min.) für Membranspüldauer beim Filterwechsel in millis
const long Filterwechsel_Membran = (3 * 60 * 100UL);

//(2,5min) für Stehwasserspüldauer in millis
const long Spuelzeit_Stehw = (2.5 * 60 * 100UL);

//(10min) für Stehwasserspüldauer beim Filterwechsel in millis
const long Filterwechsel_Stehw = (10 * 60 * 100UL);

//Grenzwert für die Feuchtemessung
const int Nass_Grenzwert = 700;

//Messwert der Feuchtemessung
int Nass_Wert = 0;

//(0,5s) Blinkinterval für die Taster-LED
int Blink_Interval = (0.5 * 1000);

//■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■​■■■■

//  SETUP
void setup() {

  // Watchdog-Timer auf 4 Sekunden setzen
  //  wdt_enable (WDTO_4S);

  //LCD-Display
  //LCD initialisieren
  lcd.init();

  // Setup Serial connection
  Serial.begin(115200);

  //Initialisieren des Displays mit 16 Zeichen und 2 Zeilen
  lcd.setCursor(16, 2);

  //Arduino
  //Eingang für Schwimmerschalter
  pinMode(Voll, INPUT_PULLUP);

  //Interner Pull up Widerstand für Schwimmerschalter auf 5V
  digitalWrite(Voll, HIGH);

  //Interner Pull up Widerstand für Schwimmerschalter (NC) auf 5V
  attachInterrupt(1, Func_Voll, HIGH);  //Wenn Voll=Pin 3 (INT 1) auf 5V (HIGH) geht, Func_Voll aufrufen

  //Mit internem Pullup-Widerstand (Anforderungs-Taster schaltet auf Masse)
  pinMode(12, INPUT_PULLUP);

  //Ausgang für Betriebs-LED
  pinMode(TasterLED, OUTPUT);

  //Ausgang über MosFet auf Magnetventil 1
  pinMode(MembranSpuelung, OUTPUT);

  //Ausgang über MosFet auf Magnetventil 2
  pinMode(StehwasserSpuelung, OUTPUT);

  //Ausgang über MosFet auf Magnetventil 3
  pinMode(Reinwasser, OUTPUT);

  //Ausgang über MosFet auf Magnetventil 4
  pinMode(Rohwasser, OUTPUT);

  //Ausgang für aktiven Piezo (Alarm für Feuchte-Behälter und Feuchte-Filter)
  pinMode (Piezo, OUTPUT);

  //Alle Magnetventile ZU & Piezo Aus
  digitalWrite(Rohwasser, LOW);
  digitalWrite(Reinwasser, LOW);
  digitalWrite(MembranSpuelung, LOW);
  digitalWrite(StehwasserSpuelung, LOW);
  digitalWrite(Piezo, LOW);

  //Deklaration, bei welchen Clicks zu welcher Funktion gesprungen werden soll
  button.attachClick(Func_Anforderung);
  button.attachDoubleClick(Func_Filterwechsel);
  button.attachDuringLongPress(Func_Desinfektion);

} //Ende Setup
//■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■​■■■■

//  HAUPTSCHLEIFE

void loop() {

  // Watchdog-Timer zurücksetzen
  //wdt_reset();

  //################################################################################​###########################

  //Überwachung des Tasters
  button.tick();

  //################################################################################​###########################

  //Auslesen von A1 (Feuchtesensor)
  Nass_Wert = analogRead(Nass);

  //Wenn der Messwert >= Nass_Grenzwert ist, rufe Func_Nass auf
  if (Nass_Wert >= Nass_Grenzwert) Func_Nass;
  
} //Ende Loop

Kannst du da was erkennen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2019, 12:59
Beitrag #6
RE: Nano CH340 - Software Reset
(17.03.2019 12:42)Lite schrieb:  Ja, mit ´nem simplen Sketch geht es einwandfrei.
Meinen Sketch "kennst" Du schon:
Dann wird es klar am Sketch liegen Wink

Ich merke mir nicht sämtliche Sketche Wink

Folgendes ist mir aufgefallen:
Code:
const long Fuellzeit_Grenzwert = (5 * 60 * 100UL);
sollte besser const unsigned long sein, da es nicht negativ werden kann.

Code:
//Wenn der Messwert >= Nass_Grenzwert ist, rufe Func_Nass auf
  if (Nass_Wert >= Nass_Grenzwert) Func_Nass;
Func_nass ist nicht definiert und der Code macht garantiert nicht, was Du Dir vorstellst.
Richtig wäre:
Code:
//Wenn der Messwert >= Nass_Grenzwert ist, rufe Func_Nass auf
  if (Nass_Wert >= Nass_Grenzwert) Func_Nass();

Mit dem Watchdog kenne ich mich nicht aus. Tritt der Effekt auch auf, wenn Du den weg läßt?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2019, 13:22
Beitrag #7
RE: Nano CH340 - Software Reset
Okay, danke.

"Alles" in UL geändert.
Func_Nass ist in Func_Nass() geändert.
Die Func_Nass-Funktion ist weiter unten, ich hatte den Sketch nur bis zur Loop eingestellt.

Der Watchdog war ja hinter //
Ich habe trotzdem alles zum WD rausgeschmissen....keine Änderung.

OneButton kpl. rausgeschmissen...keine Änderung.

Zum Test hab ich in der Loop eine LCD-Ausgabe eingefügt und wie es aussieht, kommt er nicht bis zur Loop.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2019, 14:16 (Dieser Beitrag wurde zuletzt bearbeitet: 17.03.2019 14:17 von Tommy56.)
Beitrag #8
RE: Nano CH340 - Software Reset
(17.03.2019 13:22)Lite schrieb:  Zum Test hab ich in der Loop eine LCD-Ausgabe eingefügt und wie es aussieht, kommt er nicht bis zur Loop.
Das würde ich daraus nicht zwingend schließen. Es kann ja auch am LCD liegen.

Mach doch mal am Anfang und nach jedem Aufruf im Setup ein Serial.println rein und schau Dir im seriellen Monitor an, wieweit er kommt.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Absturz Nano / com-port shrimps 5 237 18.05.2019 18:27
Letzter Beitrag: hotsystems
  Arduino nano auf 3,3Volt umbauen Bernd666 10 447 08.05.2019 14:52
Letzter Beitrag: Bernd666
  Spannungsversorgung Nano AnFi 1 710 24.03.2019 14:02
Letzter Beitrag: hotsystems
  Kann ein Arduino Nano mittels delayMicroseconds(13) ein 38kHz-Signal erzeugen SchwuppSchwupp 6 1.338 21.03.2019 11:06
Letzter Beitrag: biologist
  Nano - gelöste USB-Buchse wieder anlöten? Arduinero 7 1.712 27.01.2019 17:05
Letzter Beitrag: Chopp
  Nano spielt verrückt! AnFi 6 1.107 16.01.2019 02:54
Letzter Beitrag: Chopp
  PWM-Signal reduzieren auf 5V und per Nano auswerten (PulseIn) dionys 13 2.224 21.12.2018 21:38
Letzter Beitrag: georg01
  Wemos TTGO XI 8F328P-I Nano V3.0 AnFi 8 2.551 20.12.2018 20:33
Letzter Beitrag: AnFi
  Fehlfunktion bei Nano + Servomotor im Batteriebetrieb Backtobasics 11 1.958 10.12.2018 11:11
Letzter Beitrag: Backtobasics
  Mega2560 und Mini-Ethernet Reset-pin problem sepp01 60 6.517 09.10.2018 17:25
Letzter Beitrag: sepp01

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste