Arduino Lauflicht Programmierung?

Hallo ich bin Neu hier und auch neu in der Materie Arduino. Ich hoffe hier kann mir einer helfen- Ich möchte ein Lauflicht (wie auf Video:https://www.instagram.com/p/CHOOV51Fj_T/?igshid=tudc3clo118m) in Kaltweiss für zwei Led Bänder programmieren die Parallel zueinander anlaufen sollen. Dazu habe ich eine gewisse Schaltung aufgebaut (siehe Bild) die via Pulldown-Widerstand angeschalten bzw. ausgeschalten werden sollen. Zum beigefügten Bild kurz eine Erklärung meiner Vorstellung:

Über den 230V Funkschalter wird ein Funkaktor angesteuert der wiederum die Primärseite des 5V Trafos an bzw. ausschalten kann. Über die Sekundärseite werden die Led-Strips bestromt sowie der Digitial Port 11 der wiederum einen "Pulldown-Widerstand" von 10kOhm vorgeschalten hat und als An bzw. Ausschalter dem Arduino einen Digitalenschalter aufzeigen soll, damit dieser weiss wann er die Led-Strips zu schalten hat. Die Led sollen dann lediglich in einem Kaltweiss Ton als Lauflicht (wie im Video) parallel zu einander loslaufen. Es sind zwei led streifen mit jeweils 165LED.

Der Arduino UNO selbst ist über ein seperates Netzteil dauerbestromt. Soweit in der Theorie...
Jetzt brauche ich allerdings eure Hilfe, denn den Skript dafür zu programmieren traue ich mir absolut nicht zu, da ich dazu leider absolut zu wenig Ahnung davon habe. Ich hoffe einer von Euch kann mir helfen und dazu einen passenden Skript schreiben und Ihn mir hier zur Verfügung stellen. Freue mich für jede Hilfreiche Antwort. Liebe Grüße

Bild zum Beitrag
Computer, Technik, programmieren, Arduino, LED, Technologie, Arduino Uno, Spiele und Gaming
Wie kann ich diese delays mit millis ersetzen?

Hallo, ich versuche mir gerade die millis Funktion beizubringen. Zurzeit verstehe ich wie man Blink without delay an der internen LED programmiert, aber ich blicke nicht ganz durch, wie ich mein ganzes Programm mit millis ersetze. Ich möchte nämlich, dass sich zwei Motoren abhängig von den Messwerten eines Ultraschallsensors drehen. Wenn die Distanz >=5 ist, sollen sie sich beide vorwärts drehen ansonsten für 3 Sekunden rückwärts (Im Code sieht es nur so komisch aus mit FORWARD und BACKWARD, weil ich die Anschlüsse bei einem Motor falsch angelötet habe). Ich würde mich sehr über eine Antwort freuen :)

#include <AFMotor.h>
#include <Servo.h>


//AF_DCMotor motor1(1);
//AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);


int trigPin = 9;
int echoPin = 10;


unsigned long currentmillis;
unsigned long previousmillis;
const long interval_1 = 1000;
const long interval_2 = 10;


void setup() {
  Serial.begin(9600); 
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);


//  motor1.setSpeed(250);
//  motor1.run(RELEASE);
//  motor2.setSpeed(250);
//  motor2.run(RELEASE);
  motor3.setSpeed(250);
  motor3.run(RELEASE);
  motor4.setSpeed(250);
  motor4.run(RELEASE);


}


void loop() {
  //Ultraschallsensor
  currentmillis = millis();
  long duration, distance;


  if (currentmillis - previousmillis >= interval_1){
  digitalWrite(trigPin,HIGH);
  //delay(1000);
     previousmillis = currentmillis;
  }
  if (currentmillis - previousmillis >= interval_2){
  digitalWrite(trigPin, LOW);
  duration=pulseIn(echoPin, HIGH);
  distance =(duration/2)/29.1;
  Serial.print(distance);
  Serial.println("CM");
  //delay (10);
     previousmillis = currentmillis;
  }


//Motoren


//vorwärts
if (distance >=5){
  motor3.run(FORWARD);
  motor4.run(BACKWARD);
}
//rückwärts
if (currentmillis - previousmillis <= interval_1){
  if (distance <=5) {
  motor3.run(BACKWARD);
  motor4.run(FORWARD);
  //delay(3000);
    previousmillis = currentmillis;
  }
}
Arduino, Arduino Uno
Kann man die Arduino Software auch für ähnliche Mainboards verwenden?

Ich habe einen 3D Drucker mit einem Atmel Mainboard. Die Firmware kann ich flashen und ihre Version ändern, das habe ich schon öfters getan.

Der Arduino Mega 2560 kann man dann als 3D Drucker Mainboard verwenden und die Firmware selbst, ziemlich unkompliziert programmieren.

Meine Frage ist, ob ich bei meinem Mainboard mit Atmel Prozessor, das ja eigentlich äquivalent wie der Arduino Mega ist, Auf diese Art die Achsen steuern kann, sowie alle nötigen Sensoren, sowie die Nozzle ansteuern kann.

Die Schnittstellen sind auf dem Mainboard gekennzeichnet und theoretisch sollte ich ja diese alle ansteuern können, oder? Wenn dies der Fall wäre, könnte ich ja mithilfe des Arduinos eine eigene Firmware auf den Drucker laden (natürlich selbst programmiert. Ich kenne mich bereits aus mit dem Programmieren von Arduinos.) Meine Drucker Firmware hat gewisse Hürden, die mich zwingen das Hauseigene Filament zu verwenden. Da die Anschlüsse auf dem Printer nicht alles Standartanschlüsse sind, möchte ich bestenfalls das Originale Mainboard behalten.

Ich habe es selbst noch nicht ausprobiert, da ich unsicher war. Kann mir jemand bestätigen, dass dies möglich ist? Und muss ich noch etwas bestimmtes beachten?

LG Lubi

Bild zum Beitrag
Computer, Software, Technik, IT, programmieren, Firmware, Arduino, Informatik, Technologie, 3D-Drucker, Spiele und Gaming
Kann mir jemand bei dem Upload helfen?

Hallo,

Ich will einen Code komplimieren und es funktioniert nicht.

Arduino: 1.8.13 (Windows 10), Board: "Arduino Nano, ATmega328P (Old Bootloader)"

C:\Users\Admin\Documents\Arduino\libraries\arduino-self-balancing-robot-master\PID_v1.cpp:45:6: error: prototype for 'void PID::Compute()' does not match any in class 'PID'

 void PID::Compute()

   ^~~

In file included from C:\Users\Admin\Documents\Arduino\libraries\arduino-self-balancing-robot-master\PID_v1.cpp:14:0:

C:\Users\Admin\Documents\Arduino\libraries\Arduino-PID-Library-master/PID_v1.h:29:10: error: candidate is: bool PID::Compute()

   bool Compute();            // * performs the PID calculation. it should be

     ^~~~~~~

C:\Users\Admin\Documents\Arduino\libraries\arduino-self-balancing-robot-master\PID_v1.cpp: In member function 'void PID::SetOutputLimits(double, double)':

C:\Users\Admin\Documents\Arduino\libraries\arduino-self-balancing-robot-master\PID_v1.cpp:132:8: error: 'ITerm' was not declared in this scope

   if(ITerm > outMax) ITerm= outMax;

    ^~~~~

C:\Users\Admin\Documents\Arduino\libraries\arduino-self-balancing-robot-master\PID_v1.cpp: In member function 'void PID::Initialize()':

C:\Users\Admin\Documents\Arduino\libraries\arduino-self-balancing-robot-master\PID_v1.cpp:158:4: error: 'ITerm' was not declared in this scope

  ITerm = *myOutput;

  ^~~~~

Mehrere Bibliotheken wurden für "PID_v1.h" gefunden

 Benutzt: C:\Users\Admin\Documents\Arduino\libraries\Arduino-PID-Library-master

 Nicht benutzt: C:\Users\Admin\Documents\Arduino\libraries\arduino-self-balancing-robot-master

exit status 1

Fehler beim Kompilieren für das Board Arduino Nano.

Dieser Bericht wäre detaillierter, wenn die Option

"Ausführliche Ausgabe während der Kompilierung"

in Datei -> Voreinstellungen aktiviert wäre.

Kann mir jemand helfen??!

Danke

Upload, Arduino
Transistor mit Arduino verwenden, 12v schalten?

Hallo allerseits,

ich bin grade dabei für meine Rift s eine Kühllösung zu bauen, da mir relativ warm wird wenn ich spiele ich habe vor 2 Lüfter zu nutzen die auf 12v laufen, jedoch kann der Arduino natürlich nur 5v ausgeben deshalb stehe ich vor der Qual der Wahl welchen Transistor oder Mosfet ich nutzen sollte jetzt hab ich hier mal paar Daten:

Für die Lüfter:

Nennspannung: DC 12V

Nennstrom: 0,08A

Leistungsaufnahme: 1W

Wie gesagt von den Lüftern würden zwei parallel geschaltet werden..

Also müsste der Transistor mit 0,16A und 2W bei 12v Klarkommen können und mit 5v geschaltet werden können ohne dabei zu große Hitze(wird verlötet und kommt mit PLA(kunstoff) in Kontakt) zu entwickeln, bestenfalls ohne Kühlkörper. Der arduino nano kann bis zu 20mA schalten welche Wiederstände ich dann bräuchte könntet ihr auch gerne mit antworten.

Der Transistor würde dann als schalter verwendet werden und mithilfe von PWM die Lüftergeschwindigkeit Regulieren dabei müsste der Transistor bis zu 980Hz abkönnen..

Falls ich nötige Informationen vergessen habe sind hier die links zu den Dokumentationen (Mit den drei Transistoren die evt in frage kämen):

Arduino nano: https://store.arduino.cc/arduino-nano-every-with-headers

Lüfter: https://www.amazon.de/Brushless-L%C3%A4rmarmer-K%C3%BChlk%C3%BChler-Ventilator-Extruder/dp/B07JQ89YC7/ref=sr_1_5?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1

PN2907A: https://cdn-shop.adafruit.com/product-files/3598/PN2907A-D.PDF

IRLB8721PbF: https://cdn-shop.adafruit.com/datasheets/irlb8721pbf.pdf

TIP120: https://cdn-shop.adafruit.com/datasheets/TIP120.pdf

Danke für die Antworten im voraus!

Ich werde fragen in den Kommentaren versuchen so früh wie möglich beantworten.

Technik, Elektronik, Arduino
Controllno MAXI Pure I2C Display?

Hallo zusammen,

ich bastel mir gerade eine kleine Steuerung, für die ich unter anderem ein Display brauche. Da ich noch einen Controllino MAXI Pure herumliegen habe, wollte ich das mit dem realisieren.
Als Display habe ich mir ein LCD-Display mit I2C Schnittstelle dazu gekauft.

Die I2C-Schnittstelle kann man beim normalen Arduino ja über die Pins A4 und A5 ansteuern. Genauso habe ich das beim Controllino auch gemacht. Also +5V auf VCC, GND auf GND, A4 auf SDA und A5 auf SCL.

Als Programm habe ich in den Controllino das Beispielprogramm mit der NewLiquidCrystal Bibliothek geladen, das sollte einfach 2 Zeilen auf das Display schreiben und dann die Hintergrundbeleuchtung jede Sekunde Ein und Ausschalten. Allerdings passiert nach dem Hochladen nichts.

Was mir jetzt aufgefallen ist, der Controllino MAXI hat anscheinend auf den PIN Headern eine extra I2C-Schnittstelle. Der Pure hat diese Pins ja nicht. Allerdings sollte es ja trotzdem über die A4/A5 Kontakte funktionieren, genauso wie beim Arduino oder nicht?

Controllino: https://www.controllino.biz/product/controllino-maxi-pure/

Display: https://www.amazon.de/gp/product/B07DDGNPX1

Code:

#include <Wire.h>

#include <LCD.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);

void setup(){

 lcd.begin(24, 4);

 lcd.clear();

 lcd.setCursor(0,0);

 lcd.print("AZ-Delivery.de");

 lcd.setCursor(0,1);

 lcd.print("20x4 & FC-113!");

}

void loop() {

 lcd.setBacklight(HIGH);

 delay(1000);

 lcd.setBacklight(LOW);

 delay(1000);

}

Computer, Display, Technik, Elektronik, Arduino, Technologie, I2C, SPS-Programmierung, Spiele und Gaming
Wie schaffe ich es, dass ich eine LED durch Knopfdruck blinken lassen kann und durch den Knopf die LED dann wieder ausschalten kann?

Hi, ich will mit einer LED ein Auge nachstellen. Um genauer zu werden, man soll per Knopfdruck die LED anschalten, diese soll dann 5 Sekunden an sein, dann für 1 Sekunde aus und dann wieder für 5 Sekunden an, und so weiter... Wenn man dann aber den Taster wieder betätigt, soll die LED ausgehen und die LED soll dann einfach aus bleiben.

Ich habe bereits ein Sketch geschrieben, in dem die LED blinkt und wenn man den Knopf drückt, die LED wieder ausgeht. Soweit so gut, aber ich hab leider keine Ahnung, wie ich es hinbekomme, dass die LED nicht einfach nur blinkt, sondern halt für 5s blinkt, dann für 1s und so weiter, und nicht einfach nur in einem Intervall von 1 Sekunde... Habt ihr eine Idee, was ich im Sketch falsch gemacht habe, oder eine IDee wie man das Problem lösen kann?

Sketch:

int ledState = LOW; 

uint8_t TasterValue = 0;

uint8_t BlinkValue = 0;

uint8_t status = 0;

unsigned long previousMillis = 0;     

const byte TasterPin = 12; 

const long interval = 1000;        // Blinkintervall in Millisekunden

void setup() {

 pinMode(13, OUTPUT); 

 pinMode (TasterPin, INPUT_PULLUP); 

}

void loop() {

 unsigned long currentMillis = millis();

 if (BlinkValue == HIGH) {          

  if (currentMillis - previousMillis >= interval) {

   previousMillis = currentMillis;

   if (ledState == LOW)

    ledState = HIGH;

   else

    ledState = LOW;

   digitalWrite(13, ledState);

  }

 }

 else

  digitalWrite(13, LOW);       

 

 TasterValue = digitalRead (TasterPin); 

 if (status != TasterValue) {   

  if (TasterValue) {            

   BlinkValue = !BlinkValue;    

  }

  status = TasterValue;     

  delay (200);

 }

}

Ich hoffe das dies einigermaßen übersichtlich ist und nur nochmal zum Verständnis. Mit diesem Sketch kann ich per Knopfdruck die LED aktivieren und diese blinkt dann im Intervall von 1s. Ich will aber das Gleiche, nur dass die LED nicht einfach nur im Intervall von 1s blinkt sondern dass die LED 5s an ist, dann 1s aus und dann wieder 5s an..., aber man soll das ganze per Knopfdruck komplett wieder ausschalten können.

~ArduinoGeek

Computer, Technik, Elektronik, programmieren, Arduino, LED, Sketch, Technologie, Arduino Uno, Arduino IDE

Meistgelesene Fragen zum Thema Arduino