Code:
/*
Analog Input
*/
#include "OneButton.h"
#define MOTOR_1 A2
#define MOTOR_2 A4
#define POTI A0
#define PWM 9
#define TASTER 5
#define LED 3
bool sto = 0;
//void clickedIt();
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 )
{
Serial.println("Poti zu Hoch ! ! !");
digitalWrite(MOTOR_1, HIGH);
digitalWrite(MOTOR_2, HIGH);
digitalWrite(LED, HIGH);
delay(60);
poti_Value = analogRead(POTI);
poti_prozent = map(poti_Value, 0,1023, 0,100);
digitalWrite(LED, LOW);
delay(60);
}
}
bool Drehrichtung = true;
void loop() {
button.tick();
stopp();
//void clickedIt();
int pwmSpeed;
//delay(200);
//digitalWrite(MOTOR_1, HIGH);
//digitalWrite(MOTOR_2, HIGH);
//delay(200);
if(Drehrichtung == true)
{
button.tick();
stopp();
//void clickedIt();
// LED Drehrichtung Rechts
digitalWrite(LED, LOW);
poti_Value = analogRead(POTI);
poti_prozent = map(poti_Value, 0,1023, 0,100);
// Ausgabe
Serial.print("Rechts Poti = ");
Serial.print(poti_prozent);
Serial.println("% ");
// Drehrichtung Rechts
digitalWrite(MOTOR_1, LOW);
digitalWrite(MOTOR_2, HIGH);
// Geschwindigkeit regeln
analogWrite(PWM, poti_Value / 4);
}
else
{
button.tick();
stopp();
//void clickedIt();
// LED Drehrichtung Links
digitalWrite(LED, HIGH);
poti_Value = analogRead(POTI);
poti_prozent = map(poti_Value, 0,1023, 0,100);
// Ausgabe
Serial.print("Links Poti = ");
Serial.print(poti_prozent);
Serial.println("% ");
// Drehrichtung Links
digitalWrite(MOTOR_1, HIGH);
digitalWrite(MOTOR_2, LOW);
// Geschwindigkeit regeln
analogWrite(PWM, poti_Value / 4);
}
}
void clickedIt()
{
Drehrichtung = !Drehrichtung;
digitalWrite(MOTOR_1, HIGH);
digitalWrite(MOTOR_2, HIGH);
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(100);
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(100);
}
void doubleClickedIt()
{
sto = !sto;
}
void stopp(void)
{
while(sto == true )
{
button.tick();
digitalWrite(MOTOR_1, HIGH);
digitalWrite(MOTOR_2, HIGH);
Serial.println("STOPP!!!");
digitalWrite(LED, HIGH);
delay(50);
button.tick();
delay(50);
button.tick();
delay(50);
button.tick();
delay(50);
button.tick();
delay(50);
button.tick();
digitalWrite(LED, LOW);
delay(50);
button.tick();
delay(50);
button.tick();
delay(50);
button.tick();
delay(50);
button.tick();
delay(50);
button.tick();
}
}
Lesezeichen