Komische Zeichen bei Motorstart über Relais auf 16x2 LCD bei Arduino. Wie kann ich dies lösen?

Hallo,

ich bin gerade dabei mir mittels eines Arduinos eine Bewässeurngsanlage zu bauen welche die Temp und Luftfeuchtigkeit (DHT22) sowie die Erdfeuchte (Feuchtigkeitssensor) misst und bei überschreiten des Grenzwertes über ein Relais eine Minipumpe schaltet und die Werte auf einem Standard LCD (16x2 16pins, 12 belegt) ausgibt. Das Relais als auch das LCD werden über den Arduino über 5V und der DHT22 über 3,3V versorgt. Die Minipumpe (Gleichstrom) wird über eine externe Batterie mit 6V versorgt.

Die Messung und die Ausgabe funktioniert wunder bar bis das Relais die Pumpe anschaltet, denn ab dann werden auf dem LCD nur kryptische Zeichen sichtbar. Das Problem tritt erst dann auf wenn die Pumpe anfängt zu pumpen, es liegt also nicht am Relais. Ich hab mich zwar bereits in etliche Forenbeiträge vertieft und die Lösung dürfte das Dazwischenschalten von div. elektrolyt bzw. keramik Kondis sein allerdings kenn ich mich auf diesem Gebiet ehrlich gesagt etwas mager aus. Ev. kann sich jemand erbarmen und mir laienhaft erklären welchen Kondi (ev. Berechnung) ich wo einbauen müsste und warum, damit LCD auch während des Pumpvorgangs ordentlichen Werte anzeigt.

Die Verkabelung ist über die beim Starterkit enthaltenen Steckleitungen die nicht länger als 20cm sind realisiert.

Info zur Pumpe: 3-6V DC, 130-220mAh

Info zum Relais (etwas überdimensioniert): 5V, 3Pin Connector, 10A 250V bzw. 15A 125V schaltbar

Anbei noch eine Aufnahme des Projekts - ev. ist etwas erkennbar ansonsten kann nat. ein Schaltplan nachgereicht werden.

Danke schon mal!!!

Bild zum Beitrag
Computer, Display, Bewässerung, Arduino, Kondensator, LCD, Pumpe, Relais, Auto und Motorrad
LCD4884 Arduino Laufschrift?

Habe mir letztens ein neues LCD4884 Display zugelegt. Nun steh ich aber vor folgenden "Denkfehler", und zwar wird in dem Beispiel bei Einfache Laufschrift auf LCD4884 bei http://www.arduinospielwiese.de/ das so beschrieben (kleiner Ausschnitt) :

void loop() { lcd.LCD_write_string( 78, 3, "M", MENU_NORMAL); delay(200); lcd.LCD_write_string( 70, 3, "MA", MENU_NORMAL); delay(200); lcd.LCD_write_string( 65, 3, "MAR", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 60, 3, "MART", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 53, 3, "MARTI", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 48, 3, "MARTIN", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 42, 3, "MARTIN ", MENU_NORMAL ); delay(200);
lcd.LCD_write_string( 35, 3, "MARTIN K", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 30, 3, "MARTIN KU", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 23, 3, "MARTIN KUP", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 18, 3, "MARTIN KUPK", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 12, 3, "MARTIN KUPKA", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 12, 3, " ", MENU_NORMAL ); lcd.LCD_write_string( 8, 3, "MARTIN KUPKA", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 8, 3, " ", MENU_NORMAL ); lcd.LCD_write_string( 3, 3, "MARTIN KUPKA", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 3, 3, " ", MENU_NORMAL ); lcd.LCD_write_string( 0, 3, "MARTIN KUPKA", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 0, 3, " ", MENU_NORMAL ); lcd.LCD_write_string( 0, 3, "ARTIN KUPKA", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 0, 3, " ", MENU_NORMAL ); lcd.LCD_write_string( 0, 3, "RTIN KUPKA", MENU_NORMAL ); delay(200); lcd.LCD_write_string( 0, 3, " ", MENU_NORMAL ); lcd.LCD_write_string( 0, 3, "TIN KUPKA", MENU_NORMAL ); delay(200);

etc..

Ich jedoch habe das mit einer for-Schleife gelöst(bei mir dient Hallo als Laufschrift): "Es stehen Spalte 0...83 und Zeile 0...5 zur Textpositionierung zur Verfügung."

void loop() {

for(i = 0 ;i < 54; i++) { lcd.LCD_write_string(i, 1, "HALLO", MENU_NORMAL ); delay(100); lcd.LCD_write_string(i, 1, " ", MENU_NORMAL );

}

for(i = 54 ;i > 0; i--) { lcd.LCD_write_string(i, 1, "HALLO", MENU_NORMAL ); delay(100); lcd.LCD_write_string(i, 1, " ", MENU_NORMAL );

}

}

Alles hat wunderbar geklappt, aber ich verstehe es nicht warum es 54 hier i = 0 ;i < 54; i++ heißen muss.

PS: Habe es durch Probieren geschafft auf diese Nummer zu kommen

Freue mich auf Antworten!

programmieren, Arduino, Aufschrift, For-Schleife
Welche Fähigkeiten hat der Wemo D1 (Mini) im Vergleich zum Arduino und welche Möglichkeiten bietet das W-Lan?

Hallo,

ich habe mich hier angemeldet, da ich mich für das Basteln mit Elektronik-Entwickler-Boards interessiere, aber mich nicht wirklich gut auskenne. Bisher habe ich ich einige Arduinos, und bin zufällig auf den ESP8266, bzw. auf die Wemos-Produkte gestoßen. Grundsätzlich bin ich mit Arduino voll zufrieden, aber wenn ich eine Funkübertragung herstellen möchte, ist das damit ein relativ großer Aufwand (bzw. teuer), da man bei den häufig empfohlenen Funkmodulen oft einen Level-Shifter benötigt, oder die Platinen mit eingebautem Shifter mit 20 Euro pro Stück für mich zu teuer sind. (Mit den billigen 433Mhz-Modulen habe ich schlechte Erfahrungen gemacht).

Erste Frage zum Vergleich mit dem Arduino: Ich würde gerne vorhandene Hardware, wie z.B. ein 20x4 oder 16x2 Display verwenden, kann ich das genauso am Wemos D1 Mini anschließen? In Beispielen sehe ich sonst immer nur grafische Displays...

Und zum Funk: Ich möchte gerne einfache Daten zwischen zwei Geräten verschicken, z.B. zwischen zwei Wemos oder einem Wemos und einem Raspberry Pi. Müssen beide Geräte an einem gemeinsamen W-Lan Router angemeldet sein, oder kann man eine direkte Verbindung zwischen den beiden Devices herstellen (ähnlich wie eine Verbindung zwischen einem Smartphone und einer Kamera möglich ist)?

Computer, WLAN, Technik, Elektronik, Arduino, Funk, Raspberry Pi, ESP8266
Neopixel lauflicht mit taster Starten?

Hallo, hab mir ein kleines Programm für Arduino geschrieben, welches einen Neopixel Led streifen leuchten lässt. Jetzt würde ich gerne das ganze über einen Tastendruck starten anstatt ein Dauerleuchten zu haben. Leider verzweifele ich an der Taster Funktion ;( Villt kann mir das jemand in meinen Code einbauen.

Danke

    #include <Adafruit_NeoPixel.h>
    #ifdef __AVR__
      #include <avr/power.h>
    #endif
    
    
    #define PIN            6
    #define NUMPIXELS      10
    #define BRIGHTNESS 255
    
    // When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
    // Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
    // example for more information on possible values.
    Adafruit_NeoPixel pixels = Adafruit_NeoPixel(10, 6, NEO_GRB + NEO_KHZ800);
    
    
    int delayval = 50; // delay for half a second
    
    void setup() 
    {
      pixels.begin(); // This initializes the NeoPixel library.
    }
    
    void loop() {
    
      
      for(int i=0;i<NUMPIXELS;i++) // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
    
      {  
    
        // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
        pixels.setPixelColor(i, pixels.Color(255,130,0)); // Led Gelb
    
        pixels.show(); // This sends the updated pixel color to the hardware.
    
        delay(delayval); // Delay for a period of time (in milliseconds).
    
      }
       for(int i=0;i<NUMPIXELS;i++) // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
    
      {  
    
        // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
        pixels.setPixelColor(i, pixels.Color(0,0,0)); // Led Off 
    
        pixels.show(); // This sends the updated pixel color to the hardware.
    
        delay(delayval); // Delay for a period of time (in milliseconds).
    
      }
    }
Arduino
Arduino. Motorgeschwindigkeit mit Ultraschallsensor regeln?

Moin Leute, Ich bin gerade dabei ein Programm für ein Schulprojekt zu schreiben. Das ganze soll eine Höhenreglung für einen Quadrocopter werden, allerdings wollen wir zunächst nur einen Motor kontrollieren um die Sache für den Anfang zu vereinfachen.

Der Motor ist über einen ESC mit dem Arduino UNO verbunden und soll nun wie folgt von dem Ultraschallsensor in seiner Geschwindigkeit geregelt werden:

  • Um das entsprechende Flugobjekt in einer Höhe von 10cm zu halten überprüft der Ultraschallsensor ständig die Entfernung zum Boden. (funktioniert ohne Probleme, Werte werden in cm ausgegeben)

  • Falls der Sensor eine Entfernung über 10cm misst soll der Motor verlangsamt werden, wenn er eine unter 10cm misst soll er beschleunigen und wenn er 10cm misst soll die Geschwindigkeit beibehalten werden.

Problem: Ich weiß wie man den Motor auf einer bestimmten Geschwindigkeit drehen lässt und wie man den Motor auf eine bestimmte Geschwindigkeit beschleunigt bzw. abbremst, aber ich habe keine Ahnung wie man das ganze ohne feste Geschwindigkeiten macht. :(

Es würde mich freuen wenn mir jemand das erklären könnte oder eine Seite verlinkt auf der das erklärt wird, denn ich suche bereits seit Wochen auf Google nach der richtigen Vorgehensweise, finde aber keine Beispielcode oder die richtigen Befehle für mein Anliegen und so langsam deprimiert es mich auch sehr, dass ich mit meinem Projekt nicht mehr weiter komme.

Bild zum Beitrag
Technik, programmieren, Arduino
Wie modernisiere ich einen Speiseaufzug?

in meinen Haus ist ein alter Speiseaufzug von 1970 eingebaut (siehe Anhang). Dieser funktioniert absolut zuverlässig und sicher, leider gibt es erhebliche Nachteile:1. der Aufzug führt von der Küche im Keller zum Esszimmer im Erdgeschoss. Obwohl darüber genug Platz wäre, wurde die gesamte Triebewerksraum in den ersten Stock gelegt. Dort ist nun ein Schlafzimmer. Dieses ist unbenutzbar wegen 2. und 3.2. die alte Steuerung macht ein extrem lautes Brummen im ersten Stock verursacht durch ein entsprechend altes Bauteil dort. Man kann sich in dem Raum oben nicht aufhalten deswegen. Das könnte man mit Austausch der Steuerung beheben. aber:3. der Aufzug ist darüber hinaus extrem laut, wenn dieser bewegt wird (lautes Krachen).4. unnötige Platzverschwendung im Schlafzimmer.

Ansonsten funktioniert die Sicherungstechnik super: die Türen lassen sich entsprechend auch nur öffnen, wenn der Aufzug sich im entsprechenden Stockwerk sich befindet!

Es gibt dann Hersteller, welche neue Systeme anbieten, aber Kosten um die 6000 EUR zzgl. Einbau sind mir hierfür viel zu viel!

Nun habe ich dieses Video gefunden: https://www.youtube.com/watch?v=wDLJs1I6S44

also als Steuerung könnte ich mir dann ein SPS-Steuerungsmodul Controllino Mini von Conrad vorstellen kombiniert mit einer elektrischer Seilwinde (z.B. von Timbertech) und den vorhandenen Schaltern und Kontakte und natürlich der restlichen vorhandenen Mechanik. Motor und Steuerung dann aber direkt im Erdgeschoss eingebaut. Programmierung wäre für mich kein Problem. Ich habe nur den Sinn des Kondensators nicht verstanden hier?

Das sollte doch so gehen - oder?

Bild zum Beitrag
Technik, Arduino, Aufzug, sps

Meistgelesene Beiträge zum Thema Arduino