Arduino – die besten Beiträge

Arduino RFID reader mit Timer?

Ich habe folgendes Problem, ich versuche eine maschine in arduino zu bauen, welche die zeit misst wo keine RFID karte auf dem reader liegt. Nun habe ich aber folgendes Problem, wenn ich die karte auflege wird der Timer schon gesartet, dieser soll aber erst gesartet werden, wenn der user die karte vom reader entpfernt. kann mir da jemand helfen.

#include <SPI.h>
#include <MFRC522.h>


#define SS_PIN D4  // SDA Pin (Slave Select)
#define RST_PIN D3 // Reset Pin


MFRC522 mfrc522(SS_PIN, RST_PIN);  // RFID-Instanz


unsigned long startTime;
bool timerActive = false;
bool cardDetected = false;


void setup() {
  Serial.begin(115200);  // Initialisiere die serielle Kommunikation
  SPI.begin();           // Initialisiere den SPI-Bus
  mfrc522.PCD_Init();   // Initialisiere den RFID-Leser


  Serial.println("RFID-Leser bereit. Halten Sie eine Karte an den Leser.");
}


void loop() {
  bool cardPresent = mfrc522.PICC_IsNewCardPresent();
  
  if (cardPresent) {
    if (mfrc522.PICC_ReadCardSerial()) {
      // Karte wird erkannt
      if (timerActive) {
        // Timer stoppen und Zeit ausgeben
        unsigned long elapsedTime = millis() - startTime;
        Serial.print("Zeit gemessen: ");
        Serial.print(elapsedTime);
        Serial.println(" ms");
        timerActive = false;  // Timer zurücksetzen
      }
      cardDetected = true; // Karte wurde erkannt
      mfrc522.PICC_HaltA();  // Halt das Leseverfahren
      mfrc522.PCD_StopCrypto1();
    }
  } else {
    // Wenn keine Karte mehr vorhanden ist
    if (cardDetected && !timerActive) {
      // Timer starten, wenn der Timer nicht aktiv ist
      startTime = millis();
      timerActive = true;
      Serial.println("Timer gestartet.");
    }
    cardDetected = false; // Karte wurde entfernt
  }
}


Computer, Elektrik, Arduino, Elektrizität, Schaltung, Arduino Uno, ESP8266, Arduino IDE

IR Sensor mit Arduino Nano?

Hi, ich hab mir einen Arduino nano zugelegt um damit ein kleines Auto mit paar Sensoren und Aktoren zu betreiben.

Ich hab mir zur Hinderniserkennung IR Sensoren gekauft (Link unten) diese funktionen mit folgendem Code auch so wie sie sollen mit meinem Arduino Uno R3. Hierfür habe ich die einzelnen Sensoren direkt an 3,3V, GND und dem Arduino pin angeschlossen.

int sensorPin = 2;

int sensorValue = 0;

void setup() {

 Serial.begin(9600);

 pinMode(sensorPin, INPUT);

}

void loop() {

 sensorValue = digitalRead(sensorPin);

 if (sensorValue == LOW) {

  Serial.println("Hindernis erkannt!");

 } else {

  Serial.println("Kein Hindernis.");

 }

 delay(500);

}

Wenn ich nun den Nano abänder anschließe funktioniert der Sensor nicht mehr.

Ich benutze die Arduino IDE und habe als ich den Nano angeschlossen nur den USB Anschluss geändert (muss ich hier villt noch etwas anderes ändern?).

Weiß jemand wo das Problem liegen könnte?

Hinderniserkennung IR Sensoren:

https://www.ebay.de/itm/174942182964?_nkw=4+Kanal+IR+Infrarot+Tracking+Sensor+Modul+-+Hindernisserkennung+f%C3%BCr+Smart+Car&itmmeta=01J79NGC6KKJ439FSTJ9GG99QT&hash=item28bb5dde34:g:5TkAAOSwbLRjD1yt&itmprp=enc%3AAQAJAAABMHoV3kP08IDx%2BKZ9MfhVJKmC%2BPVC644mrcLgtwu5qPGjT1WwbPKL1n9u5px2XO2JuR83QNbwP1BuCqzHOZQzE%2BpO%2FwcR8C3YkZyWkMqbCX9WOTPRueH5JMxyq%2FqCbJqgj%2BMP%2FVdpjXVrh3tzWdZ7UsNYUIrsBNzkkdXK7lpfXju9zNJJJZg7%2FbvYnoASrwTAfg%2FwWH7cGK4pPb%2BVN6wLOajIwAXGuxxM1flqu30XY%2F1584jTCKZ--05Lu471fI%2FX%2FYcnjaIuVY%2Bhi9eLqUAd2L%2FiwKwQwz8HfLosxRffuNm5wUKa0HLwKc%2Bh%2Fk6xeeKJ0DX3b1ar%2BOYa%2BuCYAhZ28efA3oeQqgIaRDpzHeN%2Fy9ehTJDgysBu4kqMO4sOd9QwgWbI8hpnmaKgiqZ%2B8VhbD0k%3D%7Ctkp%3ABFBMuMPBtbpk&edge=1

Elektrotechnik, Mikrocontroller, Arduino, Schaltung, Sensor, Arduino Uno, Arduino IDE

Warum funktioniert mein Arduino Code nicht?

Ich möchte mit einem Sensor einen Sound abspielen und wenn der Sensor ausgeht, soll ein Verabschiedungssound gespielt werden.

Ich benutze Arduino Nano und DfPlayer Mini.

Es wird kein Sound abgespielt.

Danke im Voraus.

Der Code lautet:

#include <SoftwareSerial.h>
#include <DFRobotDFPlayerMini.h>

// DFPlayer Mini setup
SoftwareSerial mySoftwareSerial(2, 3); // RX, TX for DFPlayer Mini
DFRobotDFPlayerMini dfPlayer;

const int seatMatPin = 7; // Pin connected to seat occupancy mat
bool wasSeated = false;

void setup()
{
  // Start serial communication for debugging
  Serial.begin(9600); // Start serial communication at 9600 baud rate

  // Initialize serial for DFPlayer Mini
  mySoftwareSerial.begin(9600);

  // Try to start DFPlayer Mini
  if (!dfPlayer.begin(mySoftwareSerial)) {
    Serial.println("DFPlayer Mini konnte nicht gestartet werden."); // Print error message
    while (true); // Stop execution here if DFPlayer Mini fails to start
  }

  Serial.println("DFPlayer Mini bereit."); // Print success message

  // Initialize seat mat pin
  pinMode(seatMatPin, INPUT_PULLUP); // Assuming mat signal is active LOW
}

void loop()
{
  // Read seat mat state
  bool isSeated = digitalRead(seatMatPin) == LOW; // LOW means seat is occupied

  if (isSeated && !wasSeated) {
    // Seat was just occupied
    Serial.println("Sitz wurde besetzt. Begrüßungsmelodie abspielen."); // Print message
    dfPlayer.play(1); // Play greeting sound
    wasSeated = true;
  }
  else if (!isSeated && wasSeated) {
    // Seat was just vacated
    Serial.println("Sitz wurde verlassen. Verabschiedungsmelodie abspielen."); // Print message
    dfPlayer.play(2); // Play farewell sound
    wasSeated = false;
  }

  delay(100); // Small delay for stability
}
Arduino, Code, Programmiersprache, Arduino Nano, Arduino IDE

Meistgelesene Beiträge zum Thema Arduino