Soundsensor


guten nachmittag allerseits. ich habe hier eine schaltung wo verschiedene aufgaben darstellt mit einfachen sensoren. die erste zwei aufgaben funktionieren auch ganz gut, die 1. aufgabe währe ein distanzmesser und und die zweite ein lichtsesnsor ein lcd-display erklärt dir die aufgaben die du machen musst. jetzt wollte ich aber noch eine dritte aufgabe hinten dran hängen bei der man klatschen muss.
habe die schaltung für das klatschen mit einem soundsensor aus dem internet. https://drive.google.com/file/d/0b27c2bryuv06wetuci1pnk9omlu/view
einzeln hab ich dass auch getestet und es funktioniert auch jetzt wollte ich eben ,mit dem alten programm zusammen fügen (2 aufgaben).
aber der soundsensor spinnt irgendwie rum und macht nicht dass er soll hier meine lange schaltung:
code: [select]
#include <liquidcrystal.h>
#include "sr04.h"0.
#define trig_pin 3
#define echo_pin 2

int buttonpin = 6;
int led3 = 13;
int clap = 0;
long detection_range_start = 0;
long detection_range = 0;
boolean status_lights = false;
sr04 sr04 = sr04(echo_pin, trig_pin);
long a;
int led1 = 4;
int led2 = 5;
int wert = 0;
liquidcrystal lcd(7, 8, 9, 10, 11, 12);

void setup() {
  lcd.begin(16, 2);
  serial.begin(9600);
  pinmode(led1, output);
  pinmode(led2, output);
  pinmode(buttonpin, input);
  pinmode(led3, output);
}
void loop() {

  lcd.setcursor(3, 0);
  lcd.print("geocaching");
  lcd.setcursor(3, 1);
  lcd.print ("wilkommen!");

  delay(2500);
  lcd.clear();

  lcd.setcursor(3, 0);
  lcd.print("1. aufgabe");

  delay(2500);
  lcd.clear();

  lcd.setcursor(2, 0);
  lcd.print ("hebe die box");
  lcd.setcursor(4, 1);
  lcd.print ("um 10cm!");

  delay(2500);
  lcd.clear();

  = sr04.distance();           //ab hier beginnt der ultraschall-distanzmesser zu messen.
  serial.print(a);
  serial.println("cm");
  if (a >= 10 && <= 12) {     //wenn die entfernung eines gegenstandes zwischen 10cm und 12cm liegt schlatet die erste led an.
    digitalwrite(led1, high);

    lcd.setcursor(3, 0);
    lcd.print("sehr gut ;d");

    delay(2500);
    lcd.clear();


    lcd.setcursor(3, 0);
    lcd.print("2. aufgabe");

    delay(2500);
    lcd.clear();

    lcd.setcursor(3, 0);
    lcd.print ("verdunkle");
    lcd.setcursor(3, 1);
    lcd.print ("das loch!");

  }
  while (digitalread(led1) == high) { //da die erste aufgabe fertig ist fängt die zweite an, eine photozelle misst den widerstand .
    wert = analogread(a0);
    serial.println(wert);
    delay(15);
    if (wert < 300) {                 //ist der wert unter 300 die photozelle wird verdunkelt schaltet die zweite led an.
      digitalwrite(led2, high);
      delay(100);

      lcd.clear();

      lcd.setcursor(5, 0);
      lcd.print("bravo!");


      delay(2500);
      lcd.clear();


      lcd.setcursor(3, 0);
      lcd.print("3. aufgabe");

      delay(2500);
      lcd.clear();

      lcd.setcursor(4, 0);
      lcd.print ("klatsch");
      lcd.setcursor(4, 1);
      lcd.print ("klatsch!");
    }
  }
  while (digitalread(led2) == high) {
    int status_sensor = digitalread(buttonpin);     //mit zwei mal klatschen sollte die 3. led angehen
    if (status_sensor == 0)
    {
      if (clap == 0)
      {
        detection_range_start = detection_range = millis();
        clap++;
      }
      else if (clap > 0 && millis() - detection_range >= 50)
      {
        detection_range = millis();
        clap++;
      }
    }
    if (millis() - detection_range_start >= 400)
    {
      if (clap == 2)
      {
        if (!status_lights)
        {
          status_lights = true;
          digitalwrite(led3, high);
        }
      }
      clap = 0;
    }
  }
}


vielen dank für die hilfe

challenger

code: [select]

        detection_range_start = detection_range = millis();

ist die zeile wirklich gewollt?


Arduino Forum > International > Deutsch (Moderator: uwefed) > Soundsensor


arduino

Comments

Popular posts from this blog

Flip address is out of range arduino uno r3

Arduino Uno not uploading

Indesign and MathType fonts