Arduino Projektbuch - Problem mit Klopfschloss

Moin moin,
ich hab ein Problem: ich arbeite mich grad durch das Arduino-Projektbuch: ich weiss nicht ob einer von euch auch damit gearbeitet hat. Ich bin bei Projekt 12: dem Klopf-schloss. Der Code ist aus dem Buch: der stimmt. Hab ich checken lassen und noch 2x gegenkontrolliert. Die Anschlüsse hab ich exakt nach Anweisung gemacht. Wenn ich den Sketch hochjage, müsste lsaut Buch eigentlich eine grüne LED leuchten, es leuchtet aber eine rote. Zudem müsste nach dreimaligem Klopfen auf mein Piezo der Servomotor sich um 90° drehen. Die gelb leuchtenden LEDs zeigen mir, dass der Klopf-Code erkannt wird. Jedoch dreht der SERVO nicht um 90°, er versucht es, er gibt immer wieder kurze Impulse, jedoch dreht er sich nicht um 90°. Ich hab KEINEN Plan woran es liegen kann. Bislang klappte eigentlich alles nachdem ich nach Anweisung gebaut hab. Help Help Help, und danke im Voraus

uneade:
ich hab ein Problem:

Arduino-Projektbuch???

Und kannst Du mal bitte einen Text auch mit einem Zeilenumbruch schreiben. Ich hab beim 2te Satz aufgehört zu lesen.

Kannst Du auch noch im Nachhinein ändern - also nicht neu schreiben...

Hi, und danke für die schnelle Antwort :slight_smile:

Ich hab mir das Starter Kit geholt mit Arduino Uno. Da ist ein Buch mit Beispielprojekten bei.

Das hab ich durch ohne Probleme. Bei einer Lektion hab ich doch Huddel. Im Prinzip geht es um eine Lektion die man auch in der Beispielen findet. Der Pfad: File ---> examples ---> 10. starter kit / basic Kit --->p12/knocklock
Mit dem Code krieg ich das Teil zum Laufen, das ist schon mal ein Fortschritt zur Buchversion.

Nun hab ich das Problem, dass ich gar nicht klopfen brauch, mein SERVO erkennt irgend welche Klopfsignale, obwohl ich ihn nicht berühre.

Sorry falls ich vorhin bissi konfus war, ich hoffe jetzt war ich verständlicher. Evtl weiss ja einer, ob ich was im Sketch ändern muss, damit der Servo sich nicht ohne die erforderten Klopfgeräusche in Gang setzt.
Bitte Geduld mit mir haben, bin ziemlich neu .)

uneade:
Da ist ein Buch mit Beispielprojekten bei.

Ja, Geduld geht schon.. aber ich weiss noch nicht welches Buch?
Ist es evtl., ein AZ Kit?
Ist es ein Funduino Kapitel...

Bitte komm mit verwertbaren Infos. Ich rate sehr ungern in Dauerschleife!

beim Arduino Starter Kit ist ein Buch bei, in dem es unterschiedliche Projekte gibt
Eins davon ist ein Projekt wo man durch Klopfen den SERVO antreibt. Ich setz einfach mal den Sketch rein, der ist über oben genannten Pfad zu finden. Leider haut es nicht hin, wie gesagt, der erkennt ein Klopfsignal als Input obwohl keiner klopft

/*
  Arduino Starter Kit example
  Project 12 - Knock Lock

  This sketch is written to accompany Project 12 in the Arduino Starter Kit

  Parts required:
  - 1 megohm resistor
  - 10 kilohm resistor
  - three 220 ohm resistors
  - piezo
  - servo motor
  - push button
  - one red LED
  - one yellow LED
  - one green LED
  - 100 uF capacitor

  created 18 Sep 2012
  by Scott Fitzgerald
  Thanks to Federico Vanzati for improvements

  http://www.arduino.cc/starterKit

  This example code is part of the public domain.
*/

// import the library
#include <Servo.h>
// create an instance of the Servo library
Servo myServo;

const int piezo = A0;      // pin the piezo is attached to
const int switchPin = 2;    // pin the switch is attached to
const int yellowLed = 3;    // pin the yellow LED is attached to
const int greenLed = 4;    // pin the green LED is attached to
const int redLed = 5;   // pin the red LED is attached to

// variable for the piezo value
int knockVal;
// variable for the switch value
int switchVal;

// variables for the high and low limits of the knock value
const int quietKnock = 10;
const int loudKnock = 100;

// variable to indicate if locked or not
bool locked = false;
// how many valid knocks you've received
int numberOfKnocks = 0;

void setup() {
  // attach the servo to pin 9
  myServo.attach(9);

  // make the LED pins outputs
  pinMode(yellowLed, OUTPUT);
  pinMode(redLed, OUTPUT);
  pinMode(greenLed, OUTPUT);

  // set the switch pin as an input
  pinMode(switchPin, INPUT);

  // start serial communication for debugging
  Serial.begin(9600);

  // turn the green LED on
  digitalWrite(greenLed, HIGH);

  // move the servo to the unlocked position
  myServo.write(0);

  // print status to the Serial Monitor
  Serial.println("the box is unlocked!");
}

void loop() {

  // if the box is unlocked
  if (locked == false) {

    // read the value of the switch pin
    switchVal = digitalRead(switchPin);

    // if the button is pressed, lock the box
    if (switchVal == HIGH) {
      // set the locked variable to "true"
      locked = true;

      // change the status LEDs
      digitalWrite(greenLed, LOW);
      digitalWrite(redLed, HIGH);

      // move the servo to the locked position
      myServo.write(90);

      // print out status
      Serial.println("the box is locked!");

      // wait for the servo to move into position
      delay(1000);
    }
  }

  // if the box is locked
  if (locked == true) {

    // check the value of the piezo
    knockVal = analogRead(piezo);

    // if there are not enough valid knocks
    if (numberOfKnocks < 3 && knockVal > 0) {

      // check to see if the knock is in range
      if (checkForKnock(knockVal) == true) {

        // increment the number of valid knocks
        numberOfKnocks++;
      }

      // print status of knocks
      Serial.print(3 - numberOfKnocks);
      Serial.println(" more knocks to go");
    }

    // if there are three knocks
    if (numberOfKnocks >= 3) {
      // unlock the box
      locked = false;

      // move the servo to the unlocked position
      myServo.write(0);

      // wait for it to move
      delay(20);

      // change status LEDs
      digitalWrite(greenLed, HIGH);
      digitalWrite(redLed, LOW);
      Serial.println("the box is unlocked!");

      numberOfKnocks = 0;
    }
  }
}

// this function checks to see if a detected knock is within max and min range
bool checkForKnock(int value) {
  // if the value of the knock is greater than the minimum, and larger
  // than the maximum
  if (value > quietKnock && value < loudKnock) {
    // turn the status LED on
    digitalWrite(yellowLed, HIGH);
    delay(50);
    digitalWrite(yellowLed, LOW);
    // print out the status
    Serial.print("Valid knock of value ");
    Serial.println(value);
    // return true
    return true;
  }
  // if the knock is not within range
  else {
    // print status
    Serial.print("Bad knock value ");
    Serial.println(value);
    // return false
    return false;
  }
}

uneade:
über oben genannten Pfad zu finden.

welchen was?

Ich hab jetzt mal gegurgelt - Das?!?!?
https://philectron.github.io/arduino/2016/09/06/arduino-projects-book-project-12/

Genau das. Im Film kloppt der ja auf das Teil, bei mir gibt Input von irgendwo, keine Ahnung woher. Ich hab auch schon die Werte verändert, aber ich kriegs nicht hin dass ich durch ein kontrolliertes Klopfen den SERVO steuern kann

uneade:
Genau das.

Und nu frag ich Dich, warum ich das für Dich suchen musste?
Das ist jetzt #7 - und damit ist hier für mich Schluß. Ich habe Angst Dir alles einzeln aus der Nase ziehen zu müssen und das das kein Ende findet.

Du wirst jemanden finden, der hilft.

Sorry :frowning: Danke dir trotzdem für. die Mühe.

Der Piezo reagiert auch auf Geräusche! Ggf. nach Anleitung (Pkt. 2) den 1M Widerstand gegen einen kleineren austauschen.

Das Projekt dürfte nur mit Versorgung über USB funktionieren, der Servo zieht mehr Strom als der on-board Regler liefern kann.

danke, wird probiert :slight_smile:

DrDiettrich:
Der Piezo reagiert auch auf Geräusche! Ggf. nach Anleitung (Pkt. 2) den 1M Widerstand gegen einen kleineren austauschen.

Das Projekt dürfte nur mit Versorgung über USB funktionieren, der Servo zieht mehr Strom als der on-board Regler liefern kann.

Vielen lieben Dank für die Hilfe, ich bin nach und nach runtergegangen mit der Empfindlichkeit, nun läuft das Teil :slight_smile: Damit bin ich meinem Projekt bereits ein gutes Stück näher, mille gracie!

Man sieht also, das Buch ist gut, nur muß man es auch aufmerksam studieren!

DrDiettrich:
Man sieht also, das Buch ist gut, nur muß man es auch aufmerksam studieren!

So siehts aus :slight_smile:

Nachtrag für die Nachwelt: ändere noch den Titel in z.b. "Arduino Projektbuch - Problem mit Klopfschloss".
Ist hilfreicher und wird über Suchbegriffe auch besser gefunden.

Klaus_ww:
Nachtrag für die Nachwelt:

"[gelöst] Arduino Projektbuch - Problem mit Klopfschloss".

:wink: :wink: :wink:

Stimmt - wo bin ich nur mit meinen Gedanken 8)

Klaus_ww:
Nachtrag für die Nachwelt: ändere noch den Titel in z.b. "Arduino Projektbuch - Problem mit Klopfschloss".
Ist hilfreicher und wird über Suchbegriffe auch besser gefunden.

danke, ist gemacht

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.