Paso 3: Añadir un Arduino a la mezcla
Necesitaba algún tipo de forma de reconocer al pulsar el botón en el recortador de hierba y enviar un PWM de full throttle... el truco es que tiene rampa para arriba o el ESC puede quemar. Lo hice utilizando un Arduino Mini Pro pero un nano haría el truco. Usted debe ser capaz de conseguir uno por menos de $10 en línea.
A continuación conectar el pulso ESC para el pin0 analógico y routed power de la ESC con el conector de alimentación de Arduino Junta... y por supuesto conectar toma de tierra, así.
Creo que en su mayor parte todas cortadoras de malezas tienen un interruptor en el interior el gatillo en serie con la batería y el motor en la parte inferior. Corto el terminal en la parte superior de la batería puesto que ya no utilizaré lo. Como resultado los dos cables que conectaría originalmente en el motor funcionan como mi conexión de gatillo del interruptor. Esto fue soldado entre el poder de Arduino y pin2 digital. Alambré un resistor 10 de k al suelo luego al interruptor en pin2 digital como se muestra en este ejemplo instrucciones aquí.
El truco es el código, el código debe rampa el motor. Aquí es en forma cruda:
#include <servo.h></servo.h><Servo.h> int switchState = 0; int switchPin = 2; int servoPin = 14; int ledPin = 13;<servo.h></servo.h> int servoPwm = 1500; Servo servo; void setup() { pinMode(servoPin,OUTPUT); pinMode(switchPin, INPUT); servo.attach(servoPin); digitalWrite(ledPin, LOW); servo.writeMicroseconds(servoPwm); delay (7000); // wait for ESC to startup } void loop() { switchState = digitalRead(switchPin); if (switchState == HIGH && servoPwm == 1500) { digitalWrite(ledPin, HIGH); servo.writeMicroseconds(1550); delay(100); servo.writeMicroseconds(1600); delay(100); servo.writeMicroseconds(1650); delay(100); servo.writeMicroseconds(1700); delay(100); servo.writeMicroseconds(1750); delay(100); servo.writeMicroseconds(1800); servoPwm = 1800; } if (switchState == LOW) { servoPwm = 1500; servo.writeMicroseconds(servoPwm); digitalWrite(ledPin, LOW); } delay(100); // waits for the servo to get there }