Arduino – die neusten Beiträge

Arduino Delay für eine Sekunde?

Hallo, ich wollte eine Uhr für einen Display programmieren und diese mit einer Fernbedinung ansteuern. Nur habe ich ein Problem, meine Uhr ist etwas langsamer als eine normale Uhr (Atomuhr). Obwohl ich einen Delay von 1000 habe.

ich bin im Besitz des Arduino Elegoo Mega 2560

Falls es interessant ist, kopiere ich hier den kompletten Code:

#include <LiquidCrystal.h>

#include "IRremote.h"

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

int offTimer;

int onTimer;

int s=15; //sekunden

int m=49; //minuten

int h=19; //stunden

int tag=3; //tage

int monat=6; //monate

int jahr=2018; //Jahr

int receiver = 6;

int lcdsize[] = {16, 2};

IRrecv irrecv(receiver);    

decode_results results;    

void translateIR() // takes action based on IR code received

// Beschreibt Remote-IR-Codes

{

 switch(results.value)

 {

 case 0xFFA25D: onTimer++; offTimer=0; break;

 case 0xFFE21D: offTimer++; onTimer=0; break;

 case 0xFF629D: Serial.println("VOL+"); break;

 case 0xFF22DD: Serial.println("FAST BACK");   break;

 case 0xFF02FD: Serial.println("PAUSE");   break;

 case 0xFFC23D: Serial.println("FAST FORWARD");  break;

 case 0xFFE01F: Serial.println("DOWN");   break;

 case 0xFFA857: Serial.println("VOL-");   break;

 case 0xFF906F: Serial.println("UP");   break;

 case 0xFF9867: Serial.println("EQ");   break;

 case 0xFFB04F: Serial.println("ST/REPT");   break;

 case 0xFF6897: Serial.println("0");   break;

 case 0xFF30CF: Serial.println("1");   break;

 case 0xFF18E7: Serial.println("2");   break;

 case 0xFF7A85: Serial.println("3");   break;

 case 0xFF10EF: Serial.println("4");   break;

 case 0xFF38C7: Serial.println("5");   break;

 case 0xFF5AA5: Serial.println("6");   break;

 case 0xFF42BD: Serial.println("7");   break;

 case 0xFF4AB5: Serial.println("8");   break;

 case 0xFF52AD: Serial.println("9");   break;

 case 0xFFFFFFFF: Serial.println(" REPEAT");break; 

 default:

   Serial.println(" other button  ");

 }

}

void setup() {

irrecv.enableIRIn(); // Startet den Empfänger

lcd.begin(lcdsize[0], lcdsize[1]);

}

void loop() {

 if (irrecv.decode(&results)) // Haben wir ein IR-Signal erhalten?

 {

   translateIR();

   irrecv.resume(); // Erhalte den nächsten Wert

 } 

 delay(990);

 lcd.clear();

 lcd.setCursor(0, 0);

 lcd.print("----");

 if(h<10){

 lcd.print("0");

 }

 lcd.print(h);

 lcd.print(":");

 if(m<10){

 lcd.print("0");

 }

 lcd.print(m);

 lcd.print(":");

 if(s<10){

 lcd.print("0");

 }

 lcd.print(s);

 lcd.print("----");

 lcd.setCursor(0, 1);

 if(tag<10){

 lcd.print("0");

 }

 lcd.print(tag);

 lcd.print(".");

 if(monat<10){

 lcd.print("0");

 }

 lcd.print(monat);

 lcd.print(".");

 lcd.print(jahr);

 s++;

 if(s>=60){

 m++;

 s=0;

 }

 if(m>=60){

 h++;

 m=0;

 }

 if(h>=24){

 tag++;

 h=0;

 }

 if(tag==31&monat==4){

 monat++;

 tag=1;

 }

 if(tag==31&monat==6){

 monat++;

 tag=1;

 }

 if(tag==31&monat==9){

 monat++;

 tag=1;

 }

Ab hier kommen noch ca. 40 weitere Zeilen.

Mikrocontroller, Arduino, Delay

Könnt ihr mir den elektrischen Schaltplan erklären?

Hallo liebe Community,

ich wollte ein Projekt starten, undzwar eine Art Roboterspinne bauen. Ich bin im Besitz eines 3D Druckers, sodass die mechanischen Teile (noch) nicht das Problem darstellen. Das größte Problem liegt bei mir in der Elektronik, weil ich nur sehr schwache elektrotechnische Kenntnisse habe.

Könnt ihr helfen diesen Schaltplan zu erklären wo ich was anschließen muss, damit ich mir ein besseres Bild von der Sache machen kann?

Diese Bauteile liegen bei mir vor und müssten auch so im Schaltplan vorhanden sein:

  • Arduino Pro Mini Mikrocontroller
  • 3000mAh Lithium Batterie (DC 12300)
  • 12V Niedervolt Steckverbindung mit 3 Lötfahnen
  • DC/DC Voltwandler 12V/5V - 3A Output
  • 1 taktiler Schalter mit 6 Ein und Ausgängen (Lage im Schaltplan bekannt)
  • 680 Ohm 1/4 Watt 5% Wiederstand (kann ich im Schaltplan sehen)
  • 3mm blaue Led (Anschlussrichtung bereits bekannt)
  • 5x7cm Lochrasterplatine
  • 12 SG90 9g Servomotoren
  • Männliche und weibliche Stiftleiste

Nun meine Fragen: Wo muss ich die 5V anschließen und wo GND (Ground)? So wie ich das verstanden habe ist 5V + und GND -. Aber an welches Bauteil muss ich die Verbindung explizit anschließen? Sogut wie alle Bauteile weisen diese Verbindung auf.

Was bedeutet dieses Symbol bei J1? Konnte dazu nichts näheres finden und was muss ich bei dieser Verbindung besonders beachten?

Wie schliesse ich den Power Jack (Niedervolt Steckverbindung) richtig an? Was bedeutet IN_GND? Ich habe ja nur die 3 Lötfahnen und weiß nicht wie ich das verbinden soll.

COXA, FEMUR, TIBIA und JP sind alles Stiftleistenverbindungen richtig?

Ich wäre euch sehr sehr dankbar wenn ihr mir helfen würdet!

Bild zum Beitrag
Elektrotechnik, Mikrocontroller, Arduino, Elektriker, schaltplaene, Stromlaufplan

Kann man ein 100W Netzteil (5 Volt) an nen WS2812b-Streifen hängen?

Hallo Community,

ich plane, mein Zimmer mit ein bisschen Arduino-LED-Technik aufzupeppen... Der Arduino an sich bringt ja leider nicht sehr viel Watt durch. Nun hab ich mir gedacht, dass ich ein externes Netzteil für die Stromversorgung der LED-Streifen (es werden 2 unterschiedliche sein) hernehme. Beziehungsweise besser gesagt je LED-Streifen einen. Nun ist meine Frage, ob ich ohne Probleme ein 100W-Ding (5V) da dranstecken kann ohne mir Sorgen machen zu müssen. Hab mal irgendein 5V-Netzteil, das bei mir rumlag probiert und da hab ichs gleich geschafft, die vorderste LED zu schrotten. Sowas will ich natürlich jetzt eher vermeiden.

Außerdem wäre es noch interessant zu wissen, ob ich 5 1-Meter-LED-Streifen einfach hintereinander hängen kann, ohne dass da Probleme entstehen (hab da irgendwo irgendwas darüber gelesen, dass man da für jeden einzelnen Streifen ein eigenes Netzteil kaufen soll..?).

Was ich bereits besitze:

  • 1x 5 Meter LED-Streifen mit insgesamt 150 LEDs drauf (30 LEDs pro Meter) (3-polig)
  • 5x 1 Meter LED-Streifen mit jeweils 60 LEDs drauf (insgesamt dann 300 LEDs) (3-polig)
  • Arduino Nano

Was ich kaufen würde:

  • 1x 5V 10A 50W LED Power Supply Netzteil
  • 1x 5V 20A 100W LED Power Supply Netzteil

Die Leistung sollte jeweils ausreichend sein (wenn das stimmt mit den 60mA im Vollbetrieb pro LED).

Danke für die Antworten im voraus :)

Computer, Technik, Strom, Arduino, LED, Technologie

wie kann ich zwei programme (sketes) zusammenführen Arduino?

ich will zwei programme zusamen führen wie kann ich das ?(beide programme fonktioniren einzeln) Hier sind die programme: 1. #include #include

Servo ServoMotor; char* password = "123"; // change the password here, just pick any 3 numbers char* password1 = "456"; char* password2 = "789"; int position = 0; const byte ROWS = 4; const byte COLS = 4; char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} };

byte rowPins[ROWS] = { 8, 7, 6, 9 }; byte colPins[COLS] = { 5, 4, 3, 2 }; Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); int RedpinLock = 12; int GreenpinUnlock = 13;

void setup() { pinMode(RedpinLock, OUTPUT); pinMode(GreenpinUnlock, OUTPUT); ServoMotor.attach(11); LockedPosition(true); }

void loop() { char key = keypad.getKey(); if (key == '*' || key == '#') { position = 0; LockedPosition(true); } if (key == password[position]) { position ++; } if (key == password1[position]) { } if (key == password2[position]) { position ++; } if (position == 3) { LockedPosition(false); } delay(100); } void LockedPosition(int locked) { if (locked) { digitalWrite(RedpinLock, HIGH); digitalWrite(GreenpinUnlock, LOW); ServoMotor.write(11); } else { digitalWrite(RedpinLock, LOW); digitalWrite(GreenpinUnlock, HIGH); ServoMotor.write(90); } }

2.

int licht;

void setup() { Serial.begin(9600); pinMode(13,OUTPUT);

}

void loop() { // put your main code here, to run repeatedly: licht = analogRead(0); Serial.print (licht),delay;

if (licht < 940) { digitalWrite(13,HIGH); } else { digitalWrite(13, LOW); }}

programmieren, Arduino

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

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

Meistgelesene Beiträge zum Thema Arduino