Arduino Neuling braucht Hilfe: Arduino + Stromkreis für Dummies

Hallo liebes Forum,

ich verzweifle seit einigen Tagen an einem Projekt & hoffe, dass ihr mir hierbei behilflich sein könnt. Wie der Titel schon verrät, bin ich ein absoluter Neuling & haben wenig Vorkenntnisse.

Ich habe im Internet ein cooles Projekt gefunden, was ich gerne nachbauen würde.

Soweit so gut: Ich habe alles gemäß der Anleitung erledigt. (Schaltplan, Programmcode etc.=> Link)
Nun aber das Problem:
Sobald ich es ans Strom stecke, läuft die Wasserpumpe nicht, sondern stottert vielmehr. Das Display leuchtet dann nur noch ohne erkennbare Ziffern.
Ich habe jegliche Bauteile (Mosfet Modul, LM2596 etc.) getauscht, doch es ändert sich nichts. Ich habe auch schon mit dem Ersteller der Anleitung geschrieben, aber er hatte leider auch keine Lösung parat.

Hier mal ein Videos von meinem Problem (Im Hintergrund hört man das klackern/stottern)

Falls ich wichtige Angaben vergessen habe, so steinigt mich bitte nicht! :confused: :confused:

Ich bin um jede Hilfe dankbar. :slightly_frowning_face:

noob1437:
Pflanzuino 3 - Automatische Bewässerung selber bauen 💦🪴 - Ardutronix

Die Seite ist wohl auf „länglich“ getrimmt. Auf den ersten Blick hat der wohl für jede kleine Änderung im Code den Code noch einmal auf die Seite gestellt. Jo mei ... das Netz ist groß ...

Poste bitte den kompletten von Dir tatsächlich verwendeten Sketch. Nutze dazu die „für Forum kopieren“-Funktion der IDE und füge das dann per Strg-V in Dein (neues) Posting.

Da Du Anfänger bist und vermutlich nicht so gerne aus Fehlersuche-Verzweiflung in die Tischkante beißt: Lies gelegentlich das hier - rein prophylaktisch :slight_smile:

Gruß

Gregor

Hallo
nimm die Elektrik Schritt für Schritt in Betrieb, konrolliere dabei die Betriebsspannugen mit einem Voltmeter. Vorher prüfe die Lötstellen, die sehen aus der Entfernung recht "hochohmig" aus.

Und spendiere eine Freilaufdiode an der Pumpe, wenn diese noch nicht eingebaut ist.

Ich tippe auch auf Versorgung.
Welches Netzteil hast Du dran? Häng mal die Pumpe ab und schau, ob dann der ardu und das LCD ihren Dienst tun.

noob1437:
Sobald ich es ans Strom stecke, läuft die Wasserpumpe nicht, sondern stottert vielmehr. Das Display leuchtet dann nur noch ohne erkennbare Ziffern.

Das Display wird nicht initialisiert.
Welche lib?
Hast Du evtl. noch eine zweite im libordner, die hier nicht passt?
Hast Du ein Beispiel aus den examples ausprobiert?

Die Seriallen Ausgaben sind spartanisch ... Aber bekommst Du wenigstens die Sensorausgabe zu sehen?

gregorss:
Die Seite ist wohl auf „länglich“ getrimmt. Auf den ersten Blick hat der wohl für jede kleine Änderung im Code den Code noch einmal auf die Seite gestellt. Jo mei ... das Netz ist groß ...

Poste bitte den kompletten von Dir tatsächlich verwendeten Sketch. Nutze dazu die „für Forum kopieren“-Funktion der IDE und füge das dann per Strg-V in Dein (neues) Posting.

Da Du Anfänger bist und vermutlich nicht so gerne aus Fehlersuche-Verzweiflung in die Tischkante beißt: Lies gelegentlich das hier - rein prophylaktisch :slight_smile:

Gruß

Gregor

Hallo Gregor, erst einmal vielen Dank für deine Antwort :slight_smile:
Hier der Code :slight_smile: (Ich hoffe ich habe es richtig gemacht!)

/******************************************************************
 * Pflanzuino 3 - Automatische Bewaesserung
 * 
 * Ardutronix
 * www.ardutronix.de/pflanzuino-3
 * info@ardutronix.de
 ******************************************************************/
////////////////////////////////////////////////////////////////// LIBRARIES
#include <LiquidCrystal.h>
////////////////////////////////////////////////////////////////// CONNECTIONS
#define sensor         A1
#define pump           13
#define piezo          A5
#define lowlevelled    3
#define backlight      10
////////////////////////////////////////////////////////////////// GND-OUTPUTS
#define GND1           2
#define GND2           11
#define GND3           A3
///////////////////////////////////////////////////////////////// LCD & SETTINGS
bool LCDControl = 0, LowUmid = 0, HighUmid = 0;
byte UmidityPercent = 0, moisture = 0, PreviousValue = 0;
int ValUmidade = 0, AnalogValue = 0;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int MOISTURE_SET     = 50;
///////////////////////////////////////////////////////////////// BUTTONS
int lcd_key     = 0;
int adc_key_in  = 0;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5
int read_LCD_buttons()
{
 adc_key_in = analogRead(0);
 if (adc_key_in > 1000) return btnNONE;
 if (adc_key_in < 50)   return btnRIGHT;
 if (adc_key_in < 250)  return btnUP;
 if (adc_key_in < 450)  return btnDOWN;
 if (adc_key_in < 650)  return btnLEFT;
 if (adc_key_in < 850)  return btnSELECT;
 return btnNONE;
}
///////////////////////////////////////////////////////////////// VOID SETUP
void setup()
{
  Serial.begin(9600);
  lcd.begin(16,2);
  lcd.setCursor(0,0);
  lcd.print("- PFLANZUINO 3 -");
  delay(3000);
  lcd.clear();
  lcd.setCursor(4,0);
  lcd.print("MADE BY");
  lcd.setCursor(3,1);
  lcd.print("ARDUTRONIX");
  delay(2000);
  lcd.clear();
  lcd.setCursor(2,0);
  lcd.print("SUPPORT AUF");
  lcd.setCursor(1,1);
  lcd.print("ARDUTRONIX.DE");
  delay(3500);
  pinMode(sensor, INPUT);
  PreviousValue = analogRead(sensor);
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT); 
  pinMode(11, OUTPUT); 
  pinMode(A5, OUTPUT);
  pinMode(A3, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  lcd.clear(); 
}
///////////////////////////////////////////////////////////////// VOID LOOP
void loop()
{
  
  AnalogValue = analogRead(sensor);
  Serial.print("Gemessener Wert: ");
  Serial.println(AnalogValue);
  
  ///////////////////////////////////////////////////////////////// Feuchtigkeitssensor 
  UmidityPercent = map(AnalogValue, 272, 516, 0, 100); 
  /////////////////////////////////////////////////////////////////
  
  moisture = constrain(moisture, 0, 100);
  
  moisture = 100 - UmidityPercent;
  lcd.setCursor(10,1);
  lcd.print("[");
  lcd.setCursor(11,1);
  lcd.print(MOISTURE_SET);
  lcd.print("%");
  lcd.print("] ");
  
  digitalWrite(GND1, LOW);
  digitalWrite(GND2, LOW);
  digitalWrite(GND3, LOW);
  digitalWrite(piezo, LOW);
  if( (moisture > (PreviousValue)+1) || (moisture < (PreviousValue)- 1))
  {
    lcd.setCursor(1,0);
    lcd.print("Sensor: ");
    lcd.print("      ");
    lcd.setCursor(11,0);
    moisture = constrain(moisture, 0, 100);
    lcd.print(moisture);
    lcd.print("%");
    
    if(moisture < MOISTURE_SET && LowUmid == 0)
    {
    digitalWrite(piezo, HIGH);
    delay(30);
    PumpOn();
    LowLevelLed();
    lcd.setCursor(1,1);
    lcd.print("trocken ");
    LowUmid = 1;
    HighUmid = 0;
    }
    if(moisture >= MOISTURE_SET && HighUmid == 0)
    {
    PumpOff();
    LowLevelLedOFF();
    HighUmid = 1;
    LowUmid = 0;
    lcd.setCursor(1,1);
    lcd.print("feucht   ");
    }  
    
    PreviousValue = moisture;
  }
  lcd_key = read_LCD_buttons();
switch (lcd_key)               
 { 
  case btnUP:
     {
     MOISTURE_SET = MOISTURE_SET + 1;
     MOISTURE_SET = constrain(MOISTURE_SET,20,100);
     delay(170);
     digitalWrite(piezo, HIGH);
     delay(30);
     break;
     }
   case btnDOWN:
     {
     MOISTURE_SET = MOISTURE_SET - 1;
     MOISTURE_SET = constrain(MOISTURE_SET,20,100);
     delay(170);
     digitalWrite(piezo, HIGH);
     delay(30);
     break;
     }
     case btnSELECT:
     {
     digitalWrite(piezo, HIGH);
     pinMode(10, OUTPUT);
     digitalWrite (10, HIGH);
     delay (30);
     break;
     }
     case btnLEFT:
     {
     digitalWrite(piezo, HIGH);
     pinMode(10, OUTPUT);
     digitalWrite (10, LOW);
     delay (30);
     break;
     }
 }
 }
void PumpOn(){
    digitalWrite(pump, HIGH);
}
void LowLevelLed(){
    digitalWrite(lowlevelled, HIGH);  
}
void LowLevelLedOFF(){
    digitalWrite(lowlevelled, LOW);
}
void PumpOff(){
    digitalWrite(pump, LOW);
}

paulpaulson:
Hallo
nimm die Elektrik Schritt für Schritt in Betrieb, konrolliere dabei die Betriebsspannugen mit einem Voltmeter. Vorher prüfe die Lötstellen, die sehen aus der Entfernung recht "hochohmig" aus.

Und spendiere eine Freilaufdiode an der Pumpe, wenn diese noch nicht eingebaut ist.

https://i.stack.imgur.com/pgzpf.png

Hallo PaulPaulson,
die Lötstellen habe ich mehrmals geprüft. Da dürfte eigentlich nicht die Ursache liegen.
Eine Freilaufdiode habe ich nicht angebracht. (werde ich als Nächstes mal tun)

my_xy_projekt:
Das Display wird nicht initialisiert.
Welche lib?
Hast Du evtl. noch eine zweite im libordner, die hier nicht passt?
Hast Du ein Beispiel aus den examples ausprobiert?

Die Seriallen Ausgaben sind spartanisch ... Aber bekommst Du wenigstens die Sensorausgabe zu sehen?

Wo sehe ich denn, welches Lib ich verwende? Ich habe einige in der Bibliothek installiert :confused:

Sobald das Arduino Board samt KeyPadShield am Laptop (per USB) ist, läuft das Display einwandfrei. (Die Pumpe leider trotzdem nicht).
Sobald ich es ans Netz stecke, gibt das Display keine Werte mehr raus. Sobald ich aber die beiden Kabel zum Mosfet entferne, rebootet Arduino neu & das Display ist lesbar/erkennbar. Jedoch klappt die Pumpe dann erst recht nicht.
Im Seriellen Monitor kriege ich bei beiden Szenarien die richtigen Werte. Also der Sensor scheint zu funktionieren.

noob1437:
Wo sehe ich denn, welches Lib ich verwende? Ich habe einige in der Bibliothek installiert :confused:

Das siehst Du am Anfang des Programms. In der Zeile

#include <LiquidCrystal.h>

siehst Du, dass die Bibliothek LiquidCrystal.h verwendet wird. Eine Bibliothek erweitert sozusagen die Programmiersprache um weitere Befehle - in Deinem Fall um die Befehle für Dein Display.

Gruß

Gregor

noob1437:
Sobald das Arduino Board samt KeyPadShield am Laptop (per USB) ist, läuft das Display einwandfrei. (Die Pumpe leider trotzdem nicht).
Sobald ich es ans Netz stecke, gibt das Display keine Werte mehr raus.

Dir reicht die Versorgung nicht.
Mit was für einem Steckernetzteil versorgst Du die Schaltung?
Was misst Du für eine Spannung am Hohlstecker hinter dem Step-Down?

Hallo, ich habe dir mal ein Bild angehangen :slight_smile:

my_xy_projekt:
Dir reicht die Versorgung nicht.
Mit was für einem Steckernetzteil versorgst Du die Schaltung?
Was misst Du für eine Spannung am Hohlstecker hinter dem Step-Down?

Hallo, ich habe dir mal ein Bild angehangen :slight_smile:
also wenn ich dich richtig verstanden habe, dann 11,56V. Kann das aber über den DC Spannungsregler Einstelen.

noob1437:
Hallo, ich habe dir mal ein Bild angehangen :slight_smile:

Also...
Ich hab mal durch die Anleitung geschaut - die ist ... naja...
Die Pumpe 12V 18W -> das sind 1,5A
Dann sagt die Anleitung, das der Step up auf 5V eingestellt werden soll.
NEIN!
Hatten wir gerade in einem anderen Thread:
https://forum.arduino.cc/index.php?topic=729746.45
Stell den DC/DC auf ausgehend 7V und häng die Pumpe erstmal ab.
Dann muss das Display sauber laufen.
Was der Aufbau hergibt, wenn die Pumpe dran ist, siehst Du dann.

Hallo,
die Pumpe braucht einen Strom von 18W/12V Ampere. Suche ein Netzteil, das mindestens einen Strom von 5A bei 12Volt zuverlässig liefert.

my_xy_projekt:
Also...
Ich hab mal durch die Anleitung geschaut - die ist ... naja...
Die Pumpe 12V 18W -> das sind 1,5A
Dann sagt die Anleitung, das der Step up auf 5V eingestellt werden soll.
NEIN!
Hatten wir gerade in einem anderen Thread:
Pins werden ungewollt angesteuert beim Neustart bzw. beim Hochladen - Deutsch - Arduino Forum
Stell den DC/DC auf ausgehend 7V und häng die Pumpe erstmal ab.
Dann muss das Display sauber laufen.
Was der Aufbau hergibt, wenn die Pumpe dran ist, siehst Du dann.

Hallo,
du meinst den Regler hier oder? (sorry, will nur ganz sicher gehen :confused:)
Bild unten :slight_smile:

paulpaulson:
Hallo,
die Pumpe braucht einen Strom von 18W/12V Ampere. Suche ein Netzteil, das mindestens einen Strom von 5A bei 12Volt zuverlässig liefert.

Ich finde leider kein Netzteil mit 18W/12V und 5A. Oder ich bin einfach z blöd dafür? Ich finde nur welche mit 18W 12V und 1.5A.

Ob es nun gleich 5A sein müssen oder vielleicht 3A auch reichen verrät Dir das Datenblatt deiner Pumpe.

Als Anregung:

Die Meanwells gibt es in allen möglichen Spannungen und Leistungen.

noob1437:
Ich finde leider kein Netzteil mit 18W/12V und 5A.

Das gibt es auch nicht.

Du brauchst ein Netzteil mit 12Volt und 5A, das sind dann 60 Watt.

Formel:
12V * 5A = 60 Watt

Hattest du das nicht in der Schule ?

noob1437:
du meinst den Regler hier oder?

ja.
Nicht wundern, du musst ne weile drehen...
Und falsch machen geht auch nicht. Der UNO kann ggfls. auch mit 12V umgehen.
Und bevor die Frage kommt: Ja der kann 12V, verbratet aber einen grossen Teil in Wärme. Der StepUp StepDown(!) ist die bessere Variante.

Ich finde leider kein Netzteil mit 18W/12V und 5A. Oder ich bin einfach z blöd dafür? Ich finde nur welche mit 18W 12V und 1.5A.

Nicht durcheinanderkommen.
18W/12V ist die Pumpe.
Leistung P in Watt = Spannung U in Volt * Strom I in Ampere. Umgestellt ergibt sich die Pumpe braucht:
18W/12V=1,5A

Dein Netzteil muss 2A bringen, weil ist ja noch nen Arduino und Display an. Zum Anlauf der Pumpe noch ne Reserve.
2,5A *12V = 30W
Irgendwo in der Größenordnung sollte es sein. Mehr Stom geht immer, Mehr Spannung nicht.

HotSystems:
Hattest du das nicht in der Schule ?

Sachma ... weißt Du vielleicht noch alles, was Du jemals in der Schule gelernt hast?!

Gruß

Gregor

gregorss:
Sachma ... weißt Du vielleicht noch alles, was Du jemals in der Schule gelernt hast?!

Gruß

Gregor

ganz einfach solche unsachlichen Anmerkungen ignorieren :slight_smile:

my_xy_projekt:
ja.
Nicht wundern, du musst ne weile drehen...
Und falsch machen geht auch nicht. Der UNO kann ggfls. auch mit 12V umgehen.
Und bevor die Frage kommt: Ja der kann 12V, verbratet aber einen grossen Teil in Wärme. Der StepUp ist die bessere Variante.

Nicht durcheinanderkommen.
18W/12V ist die Pumpe.
Leistung P in Watt = Spannung U in Volt * Strom I in Ampere. Umgestellt ergibt sich die Pumpe braucht:
18W/12V=1,5A

Dein Netzteil muss 2A bringen, weil ist ja noch nen Arduino und Display an. Zum Anlauf der Pumpe noch ne Reserve.
2,5A *12V = 30W
Irgendwo in der Größenordnung sollte es sein. Mehr Stom geht immer, Mehr Spannung nicht.

Super, danke dir :slight_smile: Ich habe direkt mal ein neues Netzteil bestellt. Ich hoffe wirklich, dass es daran liegt :confused: Schmeiß das Ding sonst noch ausm Fenster :smiley: :smiley:

gregorss:
Sachma ... weißt Du vielleicht noch alles, was Du jemals in der Schule gelernt hast?!

Gruß

Gregor

Danke für deine Reaktion :slight_smile:
Es sind doch halt schon paar Jährchen her, aber ich gebe mir Mühe dazuzulernen :slight_smile:

noob1437:
Schmeiß das Ding sonst noch ausm Fenster

Sag Bescheid, ich steh unten und sammel auf.

Wie gesagt, erstmal den dcdc hoch drehen.
Dein derzeitiges Phänomen ist ja, das via USB die Versorgung des Ardu+LCD klappt. Das ist auch ok so, denn das ist schaltungsseitig auf dem Aurduboard so gelöst.
Ziehst Du den USB, geht die Versorgung in die Knie.
Schluss.