Drucktaster einbinden mit der OneButton Library
Hallo ich habe ein kleines Problem mit der Lib von https://www.makerblog.at/2015/01/ard.../#comment-3895
ich bekomme mein Programm nicht zum laufen
Code:
/*
Analog Input
*/
#include "OneButton.h"
#define MOTOR_1 2
#define MOTOR_2 4
#define POTI A0
#define PWM 9
#define TASTER 5
#define LED 3
OneButton button(TASTER, true);
//int poti = A0; // select the input pin for the potentiometer
int poti_Value = 0; // variable to store the value coming from the sensor
int poti_prozent = 0;
bool sicherheit = 1;
void setup() {
// declare the ledPin as an OUTPUT:
//pinMode(ledPin, OUTPUT);
Serial.begin(9600);
//pinMode(MOTOR_1,OUTPUT);
//pinMode(MOTOR_2,OUTPUT);
pinMode(LED,OUTPUT);
pinMode(TASTER,INPUT_PULLUP);
pinMode(MOTOR_1,OUTPUT);
pinMode(MOTOR_2,OUTPUT);
pinMode(PWM,OUTPUT);
digitalWrite(LED, LOW);
poti_prozent = 4;
// Sicherheitsschaltung Poti auf 0 und Motor Aus
//poti_Value = analogRead(POTI);
//poti_prozent = map(poti_Value, 0,1023, 0,100);
pinMode(TASTER, INPUT);
button.attachClick(clickedIt);
//button.attachDoubleClick(doubleClickedIt);
while( poti_prozent >= 3 )
{
digitalWrite(MOTOR_1, HIGH);
digitalWrite(MOTOR_2, HIGH);
digitalWrite(LED, HIGH);
delay(300);
poti_Value = analogRead(POTI);
poti_prozent = map(poti_Value, 0,1023, 0,100);
digitalWrite(LED, LOW);
delay(300);
}
}
void loop() {
button.tick();
int pwmSpeed;
void clickedIt() {
digitalWrite(LED, HIGH);
}
else {
digitalWrite(LED, LOW);
}
// Poti Regelbereich
poti_Value = analogRead(POTI);
poti_prozent = map(poti_Value, 0,1023, 0,100);
// Ausgabe
Serial.print("Poti = ");
Serial.print(poti_prozent);
Serial.println("% ");
//delay(1000);
digitalWrite(MOTOR_1, HIGH);
digitalWrite(MOTOR_2, HIGH);
// Geschwindigkeit regeln
analogWrite(PWM, poti_Value / 4);
// Drehrichtung Links
digitalWrite(MOTOR_1, HIGH);
digitalWrite(MOTOR_2, LOW);
// Drehrichtung Rechts
digitalWrite(MOTOR_1, LOW);
digitalWrite(MOTOR_2, HIGH);
//digitalWrite(LED, HIGH);
//delay(1000);
// ENDE
}
Folgende Meldung
Code:
Arduino: 1.8.5 (Windows 7), Board: "Arduino Nano, ATmega328P (Old Bootloader)"
C:\Users\Ferdinand\Documents\Arduino\Drehzahlregelung\Drehzahlregelung_2\Drehzahlregelung_2.ino\Drehzahlregelung_2.ino.ino: In function 'void setup()':
Drehzahlregelung_2.ino:43: error: 'clickedIt' was not declared in this scope
button.attachClick(clickedIt);
^
C:\Users\Ferdinand\Documents\Arduino\Drehzahlregelung\Drehzahlregelung_2\Drehzahlregelung_2.ino\Drehzahlregelung_2.ino.ino: In function 'void loop()':
Drehzahlregelung_2.ino:71: error: a function-definition is not allowed here before '{' token
void clickedIt() {
^
Drehzahlregelung_2.ino:74: error: 'else' without a previous 'if'
else {
^
exit status 1
'clickedIt' was not declared in this scope
Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.
- - - Aktualisiert - - -
ich habe das Programm mal vorerst fertiggemacht
Code:
/*
Analog Input
*/
#include "OneButton.h"
#define MOTOR_1 2
#define MOTOR_2 4
#define POTI A0
#define PWM 9
#define TASTER 5
#define LED 3
OneButton button(TASTER, true);
//int poti = A0; // select the input pin for the potentiometer
int poti_Value = 0; // variable to store the value coming from the sensor
int poti_prozent = 0;
bool sicherheit = 1;
void setup() {
// declare the ledPin as an OUTPUT:
//pinMode(ledPin, OUTPUT);
Serial.begin(9600);
//pinMode(MOTOR_1,OUTPUT);
//pinMode(MOTOR_2,OUTPUT);
pinMode(LED,OUTPUT);
pinMode(TASTER,INPUT_PULLUP);
pinMode(MOTOR_1,OUTPUT);
pinMode(MOTOR_2,OUTPUT);
pinMode(PWM,OUTPUT);
digitalWrite(LED, LOW);
poti_prozent = 4;
// Sicherheitsschaltung Poti auf 0 und Motor Aus
//poti_Value = analogRead(POTI);
//poti_prozent = map(poti_Value, 0,1023, 0,100);
pinMode(TASTER, INPUT);
button.attachClick(clickedIt);
//button.attachDoubleClick(doubleClickedIt);
while( poti_prozent >= 3 )
{
digitalWrite(MOTOR_1, HIGH);
digitalWrite(MOTOR_2, HIGH);
digitalWrite(LED, HIGH);
delay(300);
poti_Value = analogRead(POTI);
poti_prozent = map(poti_Value, 0,1023, 0,100);
digitalWrite(LED, LOW);
delay(300);
}
}
void loop() {
button.tick();
int pwmSpeed;
void clickedIt() {
// LED Drehrichtung Links
digitalWrite(LED, HIGH);
poti_Value = analogRead(POTI);
poti_prozent = map(poti_Value, 0,1023, 0,100);
// Ausgabe
Serial.print("Poti = ");
Serial.print(poti_prozent);
Serial.println("% ");
// Geschwindigkeit regeln
analogWrite(PWM, poti_Value / 4);
// Drehrichtung Links
digitalWrite(MOTOR_1, HIGH);
digitalWrite(MOTOR_2, LOW);
}
else {
// LED Drehrichtung Rechts
digitalWrite(LED, LOW);
poti_Value = analogRead(POTI);
poti_prozent = map(poti_Value, 0,1023, 0,100);
// Ausgabe
Serial.print("Poti = ");
Serial.print(poti_prozent);
Serial.println("% ");
// Geschwindigkeit regeln
analogWrite(PWM, poti_Value / 4);
// Drehrichtung Rechts
digitalWrite(MOTOR_1, LOW);
digitalWrite(MOTOR_2, HIGH);
}
}