implement up down movement with sense print
This commit is contained in:
parent
8b9434e306
commit
90e160228f
74
src/main.cpp
74
src/main.cpp
|
@ -6,6 +6,33 @@
|
|||
|
||||
//follow firmware flash guide for new wemos motor shield v1.0 https://github.com/thomasfredericks/wemos_motor_shield
|
||||
|
||||
#define BUTTON_DEBOUNCE 200
|
||||
#define PIN_BUTTON D5
|
||||
unsigned long last_pin_button=0;
|
||||
bool pin_button_down=0;
|
||||
bool last_pin_button_down=0;
|
||||
|
||||
bool manual_drive_direction=false;
|
||||
|
||||
#define PIN_SENSE A0
|
||||
unsigned long last_print=0;
|
||||
#define SENSE_CLEAR_LOWER 40 //adc value lower limit for clear part. clear is around 70
|
||||
#define SENSE_CLEAR_UPPER 100 //adc value upper limit for clear part
|
||||
|
||||
#define SENSE_OPAQUE_LOWER 600 //adc value lower limit for opaque part. opaque is around 675
|
||||
#define SENSE_OPAQUE_UPPER 750 //adc value upper limit for opaque part
|
||||
|
||||
#define SENSE_END_LOWER 850 //adc value lower limit for end marker
|
||||
#define SENSE_END_UPPER 1024 //adc value upper limit for end marker
|
||||
|
||||
//define directions for motors
|
||||
#define _M1_UP = _CCW;
|
||||
#define _M1_DOWN = _CW;
|
||||
|
||||
#define _M2_UP = _CCW;
|
||||
#define _M2_DOWN = _CW;
|
||||
|
||||
int pwm;
|
||||
|
||||
//Motor shield default I2C Address: 0x30
|
||||
//PWM frequency: 1000Hz(1kHz)
|
||||
|
@ -19,9 +46,55 @@ void setup() {
|
|||
Serial.begin(57600);
|
||||
Serial.println("Starting demo");
|
||||
|
||||
pinMode(PIN_BUTTON, INPUT_PULLUP);
|
||||
pinMode(PIN_SENSE, INPUT);
|
||||
|
||||
M1.setmotor(_STOP);
|
||||
M2.setmotor(_STOP);
|
||||
|
||||
pwm=100;
|
||||
|
||||
}
|
||||
|
||||
|
||||
void loop() {
|
||||
|
||||
if (millis() > last_pin_button + BUTTON_DEBOUNCE) {
|
||||
bool new_pin_button_down=!digitalRead(PIN_BUTTON);
|
||||
if (pin_button_down != new_pin_button_down) { //changed
|
||||
pin_button_down = new_pin_button_down; //update
|
||||
last_pin_button=millis(); //delay next check
|
||||
}
|
||||
}
|
||||
|
||||
if (pin_button_down) { //button currently pressed
|
||||
if (last_pin_button_down!=pin_button_down) { //value changed. executed one time when entering if
|
||||
if (manual_drive_direction) {
|
||||
M1.setmotor( _CW, pwm);
|
||||
Serial.print("CW PWM: ");
|
||||
}else{
|
||||
M1.setmotor( _CCW, pwm);
|
||||
Serial.print("CCW PWM: ");
|
||||
}
|
||||
Serial.println(pwm);
|
||||
manual_drive_direction=!manual_drive_direction; //switch direction every new press
|
||||
}
|
||||
}else{
|
||||
if (last_pin_button_down!=pin_button_down) { //value changed
|
||||
Serial.println("Motor STOP");
|
||||
M1.setmotor(_STOP);
|
||||
}
|
||||
}
|
||||
last_pin_button_down=pin_button_down;
|
||||
|
||||
if (millis() > last_print + 100) {
|
||||
int sense=analogRead(PIN_SENSE);
|
||||
Serial.println(sense);
|
||||
last_print=millis();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
void loop() {
|
||||
|
||||
int pwm;
|
||||
|
@ -59,3 +132,4 @@ void loop() {
|
|||
delay(1000);
|
||||
|
||||
}
|
||||
*/
|
Loading…
Reference in New Issue