Probleme mit internem Pullup Widerstand

Den gabs mal und der hies Arduino MEGA ADK
https://www.geeetech.com/wiki/index.php/Arduino_Mega_ADK

Den gibt es leider nicht mehr. Der war mit Schaltregler und USB-Host zum verbinden mit Android-Händs. Die Version 3 (glaube ich) hatte noch keine USB HOST unterstützung und darum mußte das der Arduino haben. Dann mit der Nächsten Android-Version kam der USB-Host und man konnte jeden Arduino als Slave anschließen.

Grüße Uwe

Ich bin wieder da... :roll_eyes:

Ich habe eine neue Platine gelötet, das neue 5V Netzteil eingebaut und alles mit Klemmen oder Jumper Kabel angeschlossen.
Nun habe ich glaube ich meinen Uno zerschossen, und ich weiss nicht warum :thinking:
Beim betreiben des Uno über das 5V Netzteil leuchtet nichts am Arduino-Clon.
Dann habe ich über USB angeschlossen, ich hatte diverse serielle Ausgaben aus dem Programm, aber das LCD blieb schwarz.
Ich habe dann versuchsweise mit den 5V versucht über VIN zu betreiben.
Da blieb ebenfalls der ganze Arduino dunkel.
Jetzt kann ich über USB keine Verbindung mehr herstellen, lt. IDE ist der "Port busy".
Über USB mit Strom versorgt, leuchtet "ON" und "L", blinken tut aber nichts, also läuft der Arduino denke ich gar nicht...

Ich hänge ein Schaltbild, ein paar Bilder und den aktuellen Code an.
Ich hoffe jemand wird daraus schlau :roll_eyes:




Ich habe die Unterseite des Shields mehrmals auf Kurzschlüsse kontrolliert, aber es scheint keine zu geben.

//Temperatursensor Signal kommt an Pin 2
//Ausgang für Heizungsrelais kommt von Pin 3
//LCD-Paneel kommt an I2C Pin
//LED-Strip an PIN 4
//Lichtschalter an PIN 5
//
#include <FastLED.h>                                     //Bibliothek
#include <LiquidCrystal_I2C.h>                           //Bibliothek
#include <Wire.h>                                        //Bibliothek
#include <DallasTemperature.h>                           //Bibliothek
#include <OneWire.h>                                     //Bibliothek

#define LICHTSCHALTER_PIN 5
#define ONE_WIRE_BUS 2                                   //benenne One Wire Eingangspin
#define HEIZUNG_RELAIS 3                                 //benenne PIN für Heizung
#define LED_PIN 4
#define CHIPSET WS2811
#define BRIGHTNESS 255
#define NUM_LEDS 60
CRGB leds[NUM_LEDS];


OneWire oneWire(ONE_WIRE_BUS);                           //starte oneWire mit dem genannten Eingangspin
DallasTemperature sensors(&oneWire);                     //Sensoren von oneWire an Dallas weitergeben
LiquidCrystal_I2C lcd(0x27,16,2);                        //Setup des Displays, mit Name, Adresse, Zeichenzahl und Zeilenzahl

unsigned long TimerStart = 1;                            //Timer Start Zeit
unsigned long TimerZeit = 0;                             //aktuelle Timer Zeit
long Heizintervall = 180000;                              //Kontrollintervall Temperatur
int DisplayTimer = 500;                                  //Aktualisierungsintervall für LCD Temperaturanzeige
unsigned long DisplayZeit = 0;                           //Aktuelle Display Zeit
unsigned long DisplayStart = 0;                          //Startzeit Displaytimer
int Temp;                                                //Temperaturvariable erstellen
int Heiz_Zaehler = 0;                                    //Wie oft wurde geheizt
int Licht = 0;

//---------------------------------------------------------------------------------------------------------------------------


void setup() {
sensors.begin();                                         //Dallas starten
pinMode(HEIZUNG_RELAIS,OUTPUT);                          //Setze PIN als Ausgang
lcd.init();                                              //LCD´s initialisieren
lcd.backlight();                                         //Hintergrundbeleuchtung LCD einschalten
Serial.begin(9600);
digitalWrite(HEIZUNG_RELAIS,HIGH);
FastLED.addLeds<CHIPSET, LED_PIN, RGB>(leds, NUM_LEDS);
FastLED.setBrightness(BRIGHTNESS);
pinMode(LICHTSCHALTER_PIN,INPUT);
digitalWrite(LICHTSCHALTER_PIN,LOW);
delay(1000);                                             // Einschaltverzögerung
}

//---------------------------------------------------------------------------------------------------------------------------

void loop() {
  Serial.print("LICHTSCHALTER_PIN = ");
  Serial.println(digitalRead(LICHTSCHALTER_PIN));
  if(digitalRead(LICHTSCHALTER_PIN) == HIGH){
    Licht = 1;
  }
  else{
    Licht = 0;
  }
  TimerZeit = millis();
  DisplayZeit = millis();
  sensors.requestTemperatures();                           //Temperaturwerte einholen von allen Sensoren
  Temp = sensors.getTempCByIndex(0);                       //Variable mit dem genannten Sensorwert belegen


  if(Licht == 1){                                                     
      fill_solid(leds,NUM_LEDS,CHSV(255,255,100));
      FastLED.show();
      Serial.println("  HELL");
    }
    else{
      FastLED.clear();
      FastLED.show();
      Serial.println("  DUNKEL");
    }
  
  
  
  
  if((DisplayZeit - DisplayStart) > DisplayTimer){
    lcd.setCursor(1,0);                                    //Temperatur am LCD ausgeben alle 500ms
    lcd.print("Temp: ");
    lcd.print(Temp);
    lcd.print("C");
    lcd.setCursor(12,0);
    lcd.print(Heiz_Zaehler);                               //Anzeigen wie oft geheizt wurde
    DisplayStart = millis();
    Serial.println("Temperatur aktualisiert");             //Funktionskontrolle Serielle Schnittstelle
    Serial.print(TimerStart);
    Serial.print("     ");
    Serial.println(TimerZeit);
  }


  if((TimerZeit - TimerStart) > Heizintervall){
    if(Temp < 4){                                        //Temperaturkontrolle
      digitalWrite(HEIZUNG_RELAIS,LOW);                   //Heizung einschalten
      lcd.setCursor(1,1);                                 //Info am LCD ausgeben
      lcd.print("Heizung: EIN");
      Heiz_Zaehler++;
      TimerStart = millis();
    }
    else {
      digitalWrite(HEIZUNG_RELAIS,HIGH);                   //Heizung ausschalten
      lcd.setCursor(1,1);                                 //Info am LCD ausgeben
      lcd.print("Heizung: AUS");
      TimerStart = millis();
    }
    
  Serial.println("Heizung kontrolliert");                 //Funktionskontrolle serielle Schnittstelle
  } 
  
}

Hallo,

erste Soforthilfeantwort. Verbinde niemals den 5V Pin und USB gleichzeitig. Das ergibt einen Kurzschluss. Alles umgehend abstecken. Wenn du Glück hast hat sich der PC am USB nur verhaspelt. Boote den Rechner mal komplett neu.
7V...9V an VIN und USB gleichzeitig funktioniert.

(Beitrag wurde von Uwe verschoben.)

1 Like

Upps, gespaltene Identitäten.

Na denn - ich bin dann raus.

:face_with_raised_eyebrow:

Naja, ich dachte ich mach nicht einen neuen Thread auf?

Edit:
Neu starten hat übrigens nichts gebracht.
Habe jetzt einen Original UNO bestellt, vll. liegts am Clone?

Hab die Posts (Nummern hier in diesem Tread) 63 bis 68 aus einem anderen Tread hierher geschoben da die Beiträge zu diesem Tread gehört.

Grüße Uwe

Das Schöne an einem Shield ist, daß man es abziehen kann. Läßt sich der Uno dann ansprechen? Wenn ja dann hat das Shield einen katastrophalen Fehler.

Neulich hat jemand berichtet, daß sein 5V Schaltnetzteil beim Einschalten bis zu 18V liefert und seine Elektronik zerschossen hat. Hast Du das schon mal getestet, mit Scope oder Transientenrecorder? Ich würde ein Schaltnetzteil für eine höhere Ausgangsspannung nehmen und die 5V über widerstandsfähige Linearregler erzeugen, der Uno hat ja so einen schon an Bord.

Wo ist denn der interne PullUp geblieben?
Einen Externen PullUp/Down kann ich nicht erkennen.
Warum hast du die TasterLogik geändert?

Der Pullup muss wohl irgendwo verloren gegangen sein, nicht gespeichert oder sowas...
Ändert leider nichts am Problem :frowning:

Ich hab den UNO ohne Shield probiert aber er verhält sich so wie beschrieben.
Ich habe mir gedacht ich betreibe den neuen UNO über das alte 12V Netzteil und alle Verbraucher über das neue 5V Netzteil.
Wäre das eine gute Lösung für das neue Board?
Wenn ich nur das Board über 12V betreibe sollte dass ja kein Problem sein.

12V ist schon grenzwertig hoch. Lieber zwischen 7 und 9V nehmen.

Warum?

Und ja das geht ohne Probleme. (Gemeinsamen GND nicht vergessen!)
@sirdancelot hast Du Ambitionen ggfls. noch den vermeintlich defekten UNO zu testen, was geht?

Ja, und warum sind denn in den Specs des Uno auf Arduino.cc 7-12V EMPFOHLEN und 6-20V als MAXIMAL-GrenzWert angegeben?

Ich würde natürlich gerne den defekten testen, habe aber keine Ahnung wie.
Kann ihn wie gesagt ja nicht per usb verbinden.
Er leuchtet, aber was kann ich probieren?

Es gibt eine Möglichkeit den AVR via ISP zu beschreiben.
Das ist etwas tricky, aber wenn man das einmal gemacht hat, dann ist das gar nicht so schwer dies zu wiederholen.

Dazu brauchst Du einen zweiten (Uno) - Du hast den ja schon bestellt. Wenn der da ist, dann meld Dich nochmal. Dann kann der als Programieradapter eingesetzt werden.
Wenn das geht, dann hast sehr große Chancen....

Es gibt immer noch einen Arduino mit Schaltregler on Board: den Nano Every.
Der verwendet den MPM3610 als Spannungsregler. Das ist ein Schaltregler mit integrierter Induktivität für bis zu 1,2A Dauerstrom. Wegen der integrierten Induktivität fällt das gar nicht auf, dass da ein Schaltregler drauf ist.

Die wollen doch dein liebes gelt wen er im einem Jahr kaput geht

Die Diskussion war schon par mall im dem Forum
Außer dem ist Fehler in den Specs

Den das Daten Blat für AMS1117 schreibt;

"ABSOLUTE MAXIMUM RATINGS (Note 1)
Power Dissipation Internally limited
Input Voltage 15V"

Gut das es Deepl Übersetzer gibt :wink:

Das reicht ja auch, wenn dieser 3,3V Regler auf dem Uno mit 5V betrieben wird.

Besser erst mal verständig lesen und schreiben lernen, bevor man andere schlecht macht. Mit alternativen Fakten ist niemand geholfen.

Ja ist Gut Herr Doktor hat recht.

Und schade, dass es keine Tastaturen mit eingebauter deutscher Rechtschreibung gibt.