Arduino – die besten Beiträge

Tasterstatus HIGH schalten ?

Hallo Leute bei dem unten Angegebenen Sketch sieht man das wen count richtig ist und der Taster gedrückt ist die LEDS in Reihenfolge blinken sollen.

Ich möchte das die LEDS nicht mehr aufhören zu blinken was muss ich da noch ergänzen?

int taster1=7;
int taster2=8;


int tasterstatus2=0;


int led1=12;
int led2=11;
int led3=10;
int led4=9;







bool oldButtonState = HIGH;
bool newButtonState;
int count = 0;


void setup() {
 pinMode (taster1,INPUT);
pinMode (taster2,INPUT);




pinMode (led1,OUTPUT);
pinMode (led2,OUTPUT);
pinMode (led3,OUTPUT);
pinMode (led4,OUTPUT);





}


void loop() {
  newButtonState = digitalRead(taster1);
  
  tasterstatus2 = digitalRead(taster2);
  
  if (oldButtonState == HIGH && newButtonState == LOW) {
    count++;
    oldButtonState = newButtonState;


    if (count == 1) {
      digitalWrite(led1, HIGH);
    }
    if (count == 2) {
      digitalWrite(led1, LOW);
      digitalWrite (led2,HIGH);
    }


    if (count == 3 ){
      digitalWrite (led2,LOW);
      digitalWrite (led3,HIGH);
    }


    if (count == 4){
      digitalWrite (led3,LOW);
      digitalWrite (led4,HIGH);
    }


    if (count == 5){
      digitalWrite (led4,LOW);
      count = 0;
    }


if ((tasterstatus2 == HIGH) && (count == 1)){
  
  
  digitalWrite (led1,HIGH);
  digitalWrite (led2,LOW);
  digitalWrite (led3,LOW);
  digitalWrite (led4,LOW);
  delay (1000);


  digitalWrite (led1,LOW);
  digitalWrite (led2,HIGH);
  delay (1000);
  digitalWrite (led2,LOW);
  digitalWrite (led3,HIGH);
  delay (1000);
  digitalWrite (led3,LOW);
  digitalWrite (led4,HIGH);
  delay (1000);
  digitalWrite (led4,LOW);
}








    if ((tasterstatus2 == HIGH ) &&( count == 2)){


      digitalWrite (led1,LOW);
      digitalWrite (led2,HIGH);
      digitalWrite (led3,LOW);
      digitalWrite (led4,LOW);
      delay (1000);
      digitalWrite (led3,HIGH);
      digitalWrite (led2,LOW);
      delay (1000);
      digitalWrite (led3,LOW);
      digitalWrite (led4,HIGH);
      delay (1000);
      digitalWrite (led4,LOW);
      digitalWrite (led1,HIGH);
      delay (1000);
      digitalWrite (led1,LOW);
      
    }




    if ((tasterstatus2 == HIGH) && (count == 3)){


digitalWrite (led1,LOW);
digitalWrite (led2,LOW);
digitalWrite (led3,HIGH);
digitalWrite (led4,LOW);
delay (1000);


digitalWrite (led3,LOW);
digitalWrite (led4,HIGH);
delay (1000);


digitalWrite (led4,LOW);
digitalWrite (led1,HIGH);
delay (1000);


digitalWrite (led1,LOW);
digitalWrite(led2,HIGH);
delay (1000);


digitalWrite (led2,LOW);
delay (1000);
}


if ((tasterstatus2 == HIGH) && (count == 4)){


  digitalWrite (led1,LOW);
  digitalWrite (led2,LOW);
  digitalWrite (led3,LOW);
  digitalWrite (led4,HIGH);
  delay (1000);


  digitalWrite (led4,LOW);
  digitalWrite (led1,HIGH);
  delay (1000);


  digitalWrite (led1,LOW);
  digitalWrite (led2,HIGH);
  delay (1000);


  digitalWrite (led2,LOW);
  digitalWrite (led3,HIGH);
  delay (1000);


  digitalWrite (led3,LOW);
  
}
    
        
 
Technik, Arduino, schalten, Arduino Uno

Arduino mit Adafruit Motorshield V2?

Hallo,

Ich habe folgendes Problem:

Ich baue einen sprachgesteuerten Roboter und habe dafür den arduino uno, ein adafruit motorshield und ein shield für die sprachsteuerung. Nun habe ich an das motorshield stapelbare buchsenleisten angelötet, damit ich das auf den arduino stecken kann und auf das motorshield kommt dann das sprachsteuerungs-modul. Als ich die buchsenleisten dann rangelötet hatte, hab ich das shield auf den arduino gesteckt und dieser ist dann plötzlich ausgegangen. Dann musste ich das den usb anschluss vom A/B Kabel nochmal aus und dann wieder an den pc stecken, damit der arduino wieder geht. Solange das motorshield drauf war ging jedoch immer wieder das licht aus. Ich habe auch verschiedene ports vom HUB-kabel ausprobiert aber auch wenn die buchsenleisten nur wenig reingesteckt werden, geht der arduino aus. Es liegt wahrscheinlich an einem der pins aus der "power" reihe des arduinos, weil er nur aus geht wenn in dieser reihe das shield eingesteckt wird. Wenn ich die sprachsteuerung an den arduino anschließe funktioniert alles, nur bei dem motorshield nicht. Außerdem hat es vor dem anlöten der buchsenleisten funktioniert, weil ich das motor shield auch schonmal mit normalen leisten(weiß nicht wie die heißen) angesteckt hab und da ging alles. Auch wenn ich zuerst die sprachsteuerung anstecke und dann das motorshield, geht der arduino aus. Kann das was mit dem anlöten zu tun haben und könnte mir vllt jemand helfen? Danke

Sprachsteuerung, löten, Arduino

Tipps & Erfahrungen für mein Schulprojekt: Digitales Radio mit DAB⁺/FM + Bluetooth selbst entwickeln – Hardwarewahl, Software-Stack?

Hallo Community,  

ich stehe vor meiner individuellen Projektarbeit (IDPA) der Berufsmaturität.  

Mein Ziel: Ein tragbares Digital-Radio, das …

* DAB⁺- und FM-Sender empfängt,  

* Musik per Bluetooth streamt,  

* auf einem kleinen OLED/LCD alle Infos anzeigt,  

* in einem selbst entwickelten 3D-gedruckten Gehäuse steckt,  

* wahlweise am Netzteil (USB-C) oder über einen Akku läuft.

Damit die Arbeit genug Tiefgang hat und nicht „nur“ ein gekaufter Bausatz wird, will ich möglichst viele Komponenten selbst auswählen, verschalten und programmieren (C++/Arduino-IDE).  

Wo ich Eure Hilfe brauche

1. Hardware-Stack  

  • Welches DAB⁺-Modul lässt sich zuverlässig mit Arduino/ESP32 ansteuern?  

  • MCU-Entscheidung: Reicht ein Arduino (wenig RAM, kein BT-Audio) oder ist der ESP32 sinnvoller?  

2. Software/Libraries  

  • Gibt es stabile Open-Source-Bibliotheken für DAB⁺ (z. B. Si468x) auf Arduino/ESP32?  

  • Wie schwierig ist es, Bluetooth-A2DP parallel zu DAB⁺ sauber zu implementieren?  

3. 3D-Gehäuse  

  • Material-Empfehlung und Tipps

5. Erfahrungswerte & Stolperfallen  

  • Hitze-Management?  

  • Störgeräusche durch EMI zwischen DAB-Modul / Verstärker / MCU?  

 

Über Links zu Schaltplänen, Git-Repos, Datenblättern oder eigenen Projektberichten freue ich mich.  

Schon einmal vielen Dank für jede Idee, Kritik oder Warnung – damit das Radio am Ende mehr ist als ein zusammengesteckter Bausatz! 🙏

Adrian

Technik, Bluetooth, Radiosender, Arduino, DAB, 3D-Drucker

Was muss ich an meinem Arduino-Programm ändern?

Was ist falsch an meinem Arduino-Programm?

Bis jetzt bewirkt es, dass, wenn man die Taste 2 oder A drückt, die rote LED leuchtet und ein nehativer Ton erklingt. Mehr nicht.

Eigntlich soll die Schaltung so funktioneren, dass, wenn man den Code 2009 eingibt, die grüne LED leuchtet, ein fröhlicher Ton aus dem Buzzer erklingt und der Servo sich für 50 Sekunden um 90 Grad öffnet. Sollte man den Code falsch eingeben, leuchtet die rote LED, ein negativer Ton erklingt und der Servo bleibt verschlossen.

#include <Keypad.h>
#include <Servo.h>

#define Buzzer 11

Servo Servo;

int roteLED = 12;
int grueneLED = 13;

void setLocked(bool locked)
{
  if (locked) {
    digitalWrite(roteLED, HIGH);
    digitalWrite(grueneLED, LOW);
    Servo.write(0);
    tone(Buzzer, 400, 500);
    delay(500);
    noTone(Buzzer);
    digitalWrite(roteLED, LOW);
  }
  else {
    digitalWrite(roteLED, LOW);
    digitalWrite(grueneLED, HIGH);
    Servo.write(90);
    tone(Buzzer, 1000, 200);
    delay(250);
    tone(Buzzer, 1500, 200);
    delay(250);
    tone(Buzzer, 2000, 200);
    delay(250);
    noTone(Buzzer);
    delay(50000);
    Servo.write(0);
  }
}

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 colPins[COLS] = {2, 3, 4, 5};
byte rowPins[ROWS] = {6, 7, 8, 9};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
const char code[5] = "2009";

void setup()
{
  pinMode(roteLED, OUTPUT);
  pinMode(grueneLED, OUTPUT);
  pinMode(Buzzer, OUTPUT);
  Servo.attach(10);
  setLocked(true);
}

void loop()
{
  const char key = keypad.getKey();

  if (key == '*'||key == '#') {
    position = 0;
    setLocked(true);
  }

  if (key == code[position]) {
    position++;
  }
  else
    position = 0;

  if (position == 4) {
    setLocked(false);
  }

  delay(100);
}
Arduino, Code, Programmiersprache, Arduino Uno, Arduino IDE

Arduino programm fehler?

Guten Tag,

Ich hätte eine Frage bezüglich meinem Arduino Programmes, unzwar möchte ich, dass die Schaltung so funktiomiert, dass man Auf dem keypad den code 2009 eingeben musst Macht man dies richtig leuchtet die grüne LED, ein fröjlicher Ton ertönt aus dem Buzzer und der Servo öffnet die Tür.

Sollte mam einen falschen code eingeben leichtet die rote LED ein negativer Ton erklingt und der Serbo bewegt sich nicht.

Was habe ich falsch gemacht wie muss das Programm eigntlich aussehen?

Mit Arduino version 1.13.8

Programm:

#include <Keypad.h>
#include <Servo.h>

#define Buzzer 11

Servo myServo;
char password= "2009";
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 colPins[COLS] = {2, 3, 4, 5};
byte rowPins[ROWS] = {6, 7, 8, 9};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
int roteLED = 12;
int grueneLED = 13;
char code[5] = "2009";

void setup() {
 pinMode(roteLED, OUTPUT);
 pinMode(grueneLED, OUTPUT);
 pinMode(Buzzer, OUTPUT);
 myServo.attach(10);
 setLocked(true);
}

void loop() {
 char key = keypad.getKey();
 if (key == '*'||key == '#')
 {
  position = 0;
  setLocked(true);
 }
 if (key == code[position])
 {
  position++;
 }
 if(position == 4){
 setLocked(false);
}
delay(100);
}

void setLocked(int locked)
{
 if (locked)
 {
  digitalWrite(roteLED, HIGH);
  digitalWrite(grueneLED, LOW);
  myServo.write(90);
  tone(Buzzer, 1000, 200);
  delay(250);
  tone(Buzzer, 1500, 200);
  delay(250);
  tone(Buzzer, 2000, 200);
  delay(250);
  noTone(Buzzer);
 }
 else
 {
  digitalWrite(roteLED, LOW);
  digitalWrite(grueneLED, HIGH);
  myServo.write(0);
  tone(Buzzer, 400, 500);
  delay(500);
  noTone(Buzzer);
 }
}
Arduino, Code, Programmiersprache, Arduino Uno, Arduino IDE

Meistgelesene Beiträge zum Thema Arduino