Arduino Uno – die besten Beiträge

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

Wie weiße Linien auf Display bei Arduino UNO entfernen?

Ich habe mir das "LAFVIN 3.5 inch TFT LCD Touch Display Shield Module 480x320 SPI Serial ILI9488 with Touch Pen Compatible with Arduino" (Link Unten) gekauft und wollte es mit dem Arduino Uno ansteuern. Da ich in dem Bereich noch eher unerfahren bin und zu diesem speziellen Display keinerlei Daten online sind, habe ich ChatGPT gebeten einen Testcode dafür zu schreiben:

#include <TFT_eSPI.h>
#include <SPI.h>

TFT_eSPI tft = TFT_eSPI(); // Verwende die Setup-Datei

void setup() {
 tft.init();
 tft.setRotation(1); // 0-3
 tft.fillScreen(TFT_BLACK);
 tft.setTextColor(TFT_WHITE, TFT_BLACK);
 tft.setTextSize(2);
 tft.setCursor(50, 100);
 tft.println("LAFVIN ILI9488 Test!");
 delay(2000);
 // Farbtest
 tft.fillScreen(TFT_RED);
 delay(500);
 tft.fillScreen(TFT_GREEN);
 delay(500);
 tft.fillScreen(TFT_BLUE);
 delay(500);
 tft.fillScreen(TFT_BLACK);
}

void loop() {
 tft.drawCircle(random(320), random(240), random(10, 30), TFT_YELLOW);
 delay(100);
}

Die KI meinte noch ich soll die User_Select.h-Datei in der TFT_eSPI-Librarie mit dem folgenden Text ersetzen:

#define ILI9488_DRIVER
#define TFT_CS  10
#define TFT_DC  9
#define TFT_RST 8
#define TFT_MOSI 11
#define TFT_SCLK 13
#define TFT_MISO 12
#define LOAD_GLCD
#define LOAD_FONT2
#define LOAD_FONT4
#define LOAD_FONT6
#define LOAD_FONT7
#define LOAD_FONT8
#define LOAD_GFXFF
#define SPI_FREQUENCY 20000000

Der Sketch scheint zu funktionieren (macht was es soll etwas verblast im Hintergrund) allerdings sind im Vordergrund 2 weiße Linien, die sich über das ganze Display ziehen. Alles ist richtig verkabelt:

VCC -5V GND -GND CS- D10 RESET- D8 DC / RS- D9 SDI / MOSI-D11 SCK -D13 LED -5V (über 100Ω) T_CLK - D13 (geteilt) T_CS- D6 T_DIN - D11 (geteilt) T_DO -D12 T_IRQ -Nicht nötig SDO / MISO - D12

An der Hardware kann es auch nicht liegen, da es beim Neustart des Codes, das Display komplett grün färbt, ohne Linien.

Kann mir da jemand bitte helfen?

Link:

https://www.amazon.de/LAFVIN-3-5-inch-TFT-Compatible/dp/B0CQ86T4S9?crid=20WS4KEIOKM1W&dib=eyJ2IjoiMSJ9.J68Ud1C-2nuVCTfL1PxAptfxyB7uGufPDC4iW-x7GS-26tlMEMiJWmaDdIMuBL-Se6Eh-sHANAYNWQYHJhBrouXdfH1srpKN22RU_T9E7FIn-AA_DYVxtWLkYixHTD1oQY_8O0hoYSwvCIusxjze4ckHNoM2NzshzWsuIdxs0nqjFzmtI4-8U-1GqxbEJLwwUbOQ-Yw19sTBZWwVlOBFXWjHIw4QmAE-5DDASf0kEeLT7ktosacJVZEpZsTudJL-zTZzUi4sDUoopEOggP1cY-2F4R5JAbM9ulQB0ehxA3k.pRKfnBU0tCah9ij3m03vj538RU03jJpVmE7MyP249EU&dib_tag=se&keywords=arduino%2Bdisplay&qid=1747677201&refinements=p_36%3A-1700&rnid=82947031&sprefix=arduino%2Bdi%2Caps%2C108&sr=8-11&th=1

Bild zum Beitrag
programmieren, Arduino, C, C (Programmiersprache), Arduino Uno, Arduino IDE

Pulssensor Arduino, Störungen?

Hi, ich habe gerade ein Projekt, bei der ich ein Herz nach meinem Puls blinken lassen will. Um den Sensor zu testen benutze ich einen online gestellten Code, welcher weiter unten zu finden ist. Grundsätlich funktioniert auch alles, der Puls wird angenommen und die LED blinkt in meiner Herzfrequenz, allerdings wenn mein Finger nicht drauf ist, gibt es solche Störungen, dass die Leds nur dumm flackern. Bilder vom richtigen Signal und Störungen sind beide im Anhang. Wie kann ich das am besten raus filterm, dass nix leuchtet, wenn kein finger drauf ist, aber es nach der herzfrequenz leuchtet wenn mein finger drauf ist. Klar würde es klappen wenn ich einen anderen knopf habe, welchen ich drücken muss, wenn mein finger drauf ist, dass die leds dann erst angehen und ich das flacken wie ausschalte, aber ich will das ohne knopf haben. Hat wer Vorschläge, oder besser, vielleicht eine fertigen Code? Danke im Voraus für Antworten :)

Störungen:

Puls:

Code:

// Konstanten und Variablen definieren

const int pulsePin = A0;  // Pin, an den der Puls-Sensor angeschlossen ist

const int ledPin = 13;   // Eingebaute LED-Pin des Arduino

const int threshold = 515; // Schwellenwert für den Pulswert

const int stabilityThreshold = 50; // Schwellenwert für die Stabilität des Pulswertes

int pulseValue = 0;     // Variable zur Speicherung des Pulswertes

int previousPulseValue = 0; // Variable zur Speicherung des vorherigen Pulswertes

void setup() {

 pinMode(ledPin, OUTPUT); // LED-Pin als Ausgang definieren

 Serial.begin(9600);    // Serielle Kommunikation starten

}

void loop() {

 pulseValue = analogRead(pulsePin); // Pulswert vom Sensor lesen

 Serial.println(pulseValue);     // Pulswert an den seriellen Monitor senden

 // Überprüfen, ob der Pulswert stabil ist

 if (abs(pulseValue - previousPulseValue) < stabilityThreshold) {

  // LED ein- oder ausschalten basierend auf dem Schwellenwert

  if (pulseValue > threshold) {

   digitalWrite(ledPin, HIGH); // LED einschalten

  } else {

   digitalWrite(ledPin, LOW); // LED ausschalten

  }

 } else {

  // Wenn der Pulswert nicht stabil ist, LED ausschalten

  digitalWrite(ledPin, LOW);

 }

 previousPulseValue = pulseValue; // Aktuellen Pulswert speichern

 delay(50); // Kurze Verzögerung für stabilere Werte

}

Bild zum Beitrag
Sensor, Arduino Uno, Arduino IDE

Meistgelesene Beiträge zum Thema Arduino Uno