Go Kart eléctrico de Arduino (6 / 6 paso)

Paso 6: Imágenes adicionales + código

Cajas que albergan toda la electrónica, de control izquierda y derecha- y el soporte de la batería. Sí, sé que es desordenado, pero lo suficientemente asombroso como hay ningún cortocircuito.

¡ Gracias! No dude en preguntar cualquier duda. Si quieres más fotos o esquemas puedo hacerlos así. Se adjunta el archivo ino en caso de que el código aquí no muestra correctamente.

Aquí está el código. Es realmente, realmente que utilidad chicos específicas de mi generación, pero fragmentos. Se puede utilizar tanto como tu quieras pero da crédito si desea distribuirlo.

 #include <SimpleTimer.h> // http://playground.arduino.cc/Code/SimpleTimer #include <FancyLED.h> // http://playground.arduino.cc/Code/SimpleTimer #include <Servo.h> // default arduino servo library #include <UTFT.h> // http://playground.arduino.cc/Code/SimpleTimer > extern uint8_t BigFont[]; const int throttlePin = A11; Servo esc; const int escPWRSwitch=16; const int escPWR=A13; volatile byte revolutions; unsigned int rpm; unsigned long timeold; float voltage; const int voltagePin=A9; float current; const int currentPin=A10; UTFT myGLCD(ITDB32S,38,39,40,41); long previousMillis = 0; long interval = 300; SimpleTimer timer; FancyLED left_1 = FancyLED(8, HIGH); FancyLED left_2 = FancyLED(6, HIGH); FancyLED right_1 = FancyLED(11, HIGH); FancyLED right_2 = FancyLED(7, HIGH); FancyLED brake_1 = FancyLED(3, HIGH); FancyLED brake_2 = FancyLED(10, HIGH); FancyLED brake_ind = FancyLED(44, HIGH); const int joystick = A14; int gear = 0; int throttle = 34; long indicatorInterval; int leftIndicatorF; int rightIndicatorF; // R - 11,7 (L - 8,6) int indicatorState; void setup() { esc.attach(45); pinMode(escPWR, OUTPUT); pinMode(A1, OUTPUT); pinMode(A2, OUTPUT); pinMode(A3, OUTPUT); pinMode(A4, OUTPUT); pinMode(A5, OUTPUT); pinMode(A6, OUTPUT); pinMode(A12, OUTPUT);</p><p> digitalWrite(escPWR, HIGH); myGLCD.InitLCD(PORTRAIT); myGLCD.setFont(BigFont); left_1.turnOff(); left_2.turnOff(); right_1.turnOff(); right_2.turnOff(); leftIndicatorF = timer.setInterval(450, leftIndicatorFunct); rightIndicatorF = timer.setInterval(450, rightIndicatorFunct); timer.disable(rightIndicatorF); timer.disable(leftIndicatorF);</p><p> myGLCD.clrScr(); myGLCD.fillScr(255, 0, 0); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(255, 0, 0); ///// If override button is held during startup, enter "basic mode" - only throttle and display are functional int basic_test = digitalRead(14); if (basic_test == HIGH) { myGLCD.print("BASIC MODE", CENTER, CENTER); pinMode(13, OUTPUT);</p><p> digitalWrite(13, HIGH); basic(); } } void loop() { ////////// current = ((analogRead(currentPin))); ///////// voltage = (analogRead(voltagePin)) * (0.02441) ; ////////// if (digitalRead(escPWRSwitch) == HIGH) { digitalWrite(escPWR, LOW); } else { digitalWrite(escPWR, HIGH); } ///////////</p><p>throttle = analogRead(throttlePin); throttle = map(throttle, 0, 1023, 0, 179);</p><p>if (gear > 0) { if (throttle > 35) { throttle = map(throttle, 0, 179, 35, ((140 / 8) * gear)+40); } } else if (gear == 0) { throttle = 34; } else if (gear == -1) { throttle = 34;</p><p>} else if (gear == -2) { throttle = 0; }</p><p>if (analogRead(A8) > 1000) { esc.write(throttle); } else { esc.write(34); }</p><p>////////////// unsigned long currentMillis = millis(); int joystick_val = analogRead(joystick);</p><p> if(currentMillis - previousMillis > interval) { if (joystick_val < 1000) { if (830 < joystick_val) { //up if (gear < 8 && gear > 0) { gear++; } else if (gear != 8) { gear = 1; }</p><p>} else if (680 < joystick_val) { //down if (gear > 1) { gear--; } } else if (350 < joystick_val) { //left (reverse) gear = -1; }</p><p>else if (70 < joystick_val) { //right if (gear == 0) { gear = -2; } else { gear = 0; } }} } ////////////// if (gear == 1) { digitalWrite(A3, LOW); digitalWrite(A2, HIGH); digitalWrite(A6, LOW); digitalWrite(A4, HIGH); digitalWrite(A1, LOW); digitalWrite(A12, LOW); digitalWrite(A5, LOW);</p><p>} else if (gear == 2) { digitalWrite(A3, HIGH); digitalWrite(A2, LOW); digitalWrite(A6, HIGH); digitalWrite(A4, HIGH); digitalWrite(A1, HIGH); digitalWrite(A12, LOW); digitalWrite(A5, HIGH);</p><p>} else if (gear == 3) { digitalWrite(A3, HIGH); digitalWrite(A2, LOW); digitalWrite(A6, HIGH); digitalWrite(A4, LOW); digitalWrite(A1, HIGH); digitalWrite(A12, HIGH); digitalWrite(A5, HIGH);</p><p>} else if (gear == 4) { digitalWrite(A3, LOW); digitalWrite(A2, HIGH); digitalWrite(A6, HIGH); digitalWrite(A4, LOW); digitalWrite(A1, LOW); digitalWrite(A12, HIGH); digitalWrite(A5, HIGH);</p><p>} else if (gear == 5) { digitalWrite(A3, HIGH); digitalWrite(A2, HIGH); digitalWrite(A6, HIGH); digitalWrite(A4, LOW); digitalWrite(A1, HIGH); digitalWrite(A12, HIGH); digitalWrite(A5, LOW);</p><p>} else if (gear == 6) { digitalWrite(A3, HIGH); digitalWrite(A2, HIGH); digitalWrite(A6, HIGH); digitalWrite(A4, HIGH); digitalWrite(A1, HIGH); digitalWrite(A12, HIGH); digitalWrite(A5, LOW);</p><p>} else if (gear == 7) { digitalWrite(A3, HIGH); digitalWrite(A2, LOW); digitalWrite(A6, LOW); digitalWrite(A4, LOW); digitalWrite(A1, LOW); digitalWrite(A12, HIGH); digitalWrite(A5, HIGH);</p><p>} else if (gear == 8) { digitalWrite(A3, HIGH); digitalWrite(A2, HIGH); digitalWrite(A6, HIGH); digitalWrite(A4, HIGH); digitalWrite(A1, HIGH); digitalWrite(A12, HIGH); digitalWrite(A5, HIGH);</p><p>} else if (gear == 0) { digitalWrite(A3, LOW); digitalWrite(A2, LOW); digitalWrite(A6, HIGH); digitalWrite(A4, HIGH); digitalWrite(A1, LOW); digitalWrite(A12, HIGH); digitalWrite(A5, LOW);</p><p>} else if (gear == -2) { digitalWrite(A3, HIGH); digitalWrite(A2, HIGH); digitalWrite(A6, HIGH); digitalWrite(A4, HIGH); digitalWrite(A1, LOW); digitalWrite(A12, LOW); digitalWrite(A5, HIGH);</p><p>} else if (gear == -1) { digitalWrite(A3, HIGH); digitalWrite(A2, HIGH); digitalWrite(A6, HIGH); digitalWrite(A4, HIGH); digitalWrite(A1, LOW); digitalWrite(A12, HIGH); digitalWrite(A5, HIGH);</p><p>}</p><p>////////////// if (analogRead(A15) > 1000) { digitalWrite(12, HIGH); digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(9, HIGH); } else if (analogRead(A15) < 10) { digitalWrite(12, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(9, LOW); } else { analogWrite(12, 128); analogWrite(4, 128); analogWrite(5, 128); analogWrite(9, 128); }</p><p>////////////// if (digitalRead(15) == HIGH) { timer.enable(rightIndicatorF); timer.enable(leftIndicatorF); indicatorState = 1; } else if (timer.isEnabled(leftIndicatorF) && timer.isEnabled(rightIndicatorF) && digitalRead(15) == LOW) { timer.disable(rightIndicatorF); timer.disable(leftIndicatorF); left_1.turnOff(); left_2.turnOff(); right_1.turnOff(); right_2.turnOff(); indicatorState = 0; } else if ((analogRead(A7) > 1000 || analogRead(A7) < 10) && indicatorInterval == 0) { indicatorInterval = millis(); }</p><p>if (millis() - indicatorInterval > 250 && indicatorInterval != 0) { if (analogRead(A7) > 990) { timer.toggle(leftIndicatorF); if (!timer.isEnabled(leftIndicatorF)) { left_1.turnOff(); left_2.turnOff(); indicatorState = 0; } else { indicatorState = 2; } timer.disable(rightIndicatorF); right_1.turnOff(); right_2.turnOff();</p><p>} else if (analogRead(A7) < 30) { timer.toggle(rightIndicatorF);</p><p> if (!timer.isEnabled(rightIndicatorF)) { right_1.turnOff(); right_2.turnOff(); indicatorState = 0;</p><p> } else { indicatorState = 3; } timer.disable(leftIndicatorF); left_1.turnOff(); left_2.turnOff();</p><p>} indicatorInterval = 0; } timer.run(); ////////////// if (throttle < 35 || digitalRead(16) == LOW || analogRead(A8) < 1000) { brake_1.turnOn(); brake_2.turnOn(); brake_ind.turnOn(); } else { brake_1.turnOff(); brake_2.turnOff(); brake_ind.turnOff();</p><p>} ////////////</p><p> if(currentMillis - previousMillis > interval) { previousMillis = currentMillis; myGLCD.printNumF(voltage, 3, CENTER, 10); if (digitalRead(16) == HIGH) { myGLCD.print("ESC ON ", CENTER, 40); } else { myGLCD.print("ESC OFF", CENTER, 40); } if (analogRead(A8) > 1000) { myGLCD.print("ACTIVE", CENTER, 70); } else { myGLCD.print(" ", CENTER, 70); } if (analogRead(A15) > 1000) { myGLCD.print("HEADLIGHTS 100%", CENTER, 100); } else if (analogRead(A15) < 10) { myGLCD.print("HEADLIGHTS OFF ", CENTER, 100); } else { myGLCD.print("HEADLIGHTS 50% ", CENTER, 100); } ///////// if (indicatorState == 1) { myGLCD.print("HAZARDS", CENTER, 170); } else if (indicatorState == 2) { myGLCD.print("<------", CENTER, 170); } else if (indicatorState == 3) { myGLCD.print("------>", CENTER, 170); } else if (indicatorState == 0) { myGLCD.print(" ", CENTER, 170); } if (voltage < 18.5) { myGLCD.print("LV WARNING", CENTER, 200); } else { myGLCD.print(" ", CENTER, 200); } myGLCD.printNumI(throttle, CENTER, 140, 3); myGLCD.printNumI(gear, CENTER, 240, 3);</p><p> myGLCD.printNumF(current, 3, CENTER, 280); } //////////// }</p><p>void leftIndicatorFunct() { left_1.toggle(); left_2.toggle(); }</p><p>void rightIndicatorFunct() { right_1.toggle(); right_2.toggle(); }</p><p>void basic() { //////basic mode for testing purpose digitalWrite(escPWR, LOW);</p><p> while (true) { throttle = analogRead(throttlePin);</p><p>throttle = map(throttle, 0, 1023, 0, 179); myGLCD.printNumI(throttle, CENTER, 140, 3);</p><p>esc.write(throttle); } }</p> 

Artículos Relacionados

Como hacer un kart eléctrico Custom y Motor sin cepillo de la C.C.

Como hacer un kart eléctrico Custom y Motor sin cepillo de la C.C.

este instructivo detalla el diseño y la fabricación de mi Go-Kart eléctrico. Sin embargo, los principios y métodos pueden aplicarse a vehículos similares.Eli-Kart surgió de un interés mío para crear un simple, confiable, vehículo eléctrico personal q
Huella digital eléctrico cerradura - Arduino Compatiable

Huella digital eléctrico cerradura - Arduino Compatiable

Cada compañía tiene varios gubernamentales, diferentes puestos de trabajo tienen diferentes requerimientos. Recientemente, nuestros agentes financieros ha encontrado algunos problemas.Sus archivos en papel requieren alta de confidencialidad y segurid
Como hacer un go-kart eléctrico

Como hacer un go-kart eléctrico

Este kart fue construido desde cero, incluyendo fibra de vidrio, hardware, software y trabajo del metal.
Huella digital eléctrico cerradura-Arduino compatible

Huella digital eléctrico cerradura-Arduino compatible

Cada compañía tiene varios gubernamentales, diferentes puestos de trabajo tienen diferentes requerimientos. Recientemente, nuestros agentes financieros ha encontrado algunos problemas.Sus archivos en papel requieren alta de confidencialidad y segurid
Gas a Kart de carrera eléctrico

Gas a Kart de carrera eléctrico

Inventado en los años 50 y carrera ajustado sobre los últimos 60 años, el kart es el campo de entrenamiento de pilotos de F1 y la experiencia de conducción más sencilla y más pura en las 4 ruedas. ¿Qué podría hacer mejor?Podría decirse que el eslabón
Cómo hacer un timbre (o altavoz piezoeléctrico) - Arduino Tutorial

Cómo hacer un timbre (o altavoz piezoeléctrico) - Arduino Tutorial

En este tutorial usted aprenderá cómo utilizar un zumbador o un altavoz piezoeléctrico con Arduino. ZUMBADORES pueden encontrarse en dispositivos de alarma, equipos, temporizadores y confirmación de usuario como un clic del ratón o la pulsación de te
Chibikart: Rapid-Prototyping un sub eléctrica Go-Kart usando fabricación Digital y componentes de Hobby

Chibikart: Rapid-Prototyping un sub eléctrica Go-Kart usando fabricación Digital y componentes de Hobby

Chibikart! es un kart eléctrico 2WD muy pequeño pero potente y maniobrable que puede crear usando el estándar industrial y componentes de hobby y marco digital fabricado. Uso de baterías de iones de litio modernas y motores de imán permanente sin esc
Tutoriales de Arduino (parte 3-17 Tutorial Pack)

Tutoriales de Arduino (parte 3-17 Tutorial Pack)

Se trata de Arduino Tutorial Pack parte 3.La 1ª parte está disponible aquí:La 2 º parte aquí:A diferencia de otros tutoriales aquí no doy ningún fondo en teoría funciona. Está orientada al resultado como lograrlo - para hacer mediciones de una gran c
Arduino para principiantes

Arduino para principiantes

Arduino es un ordenador de bolsillo (también llamado un "microcontrolador") que se puede programar para controlar circuitos. Interactúa con la palabra exterior a través de sensores, leds, motores, altavoces... incluso el internet; Esto es una pl
Vehículo eléctrico bricolaje (Solar asistido)

Vehículo eléctrico bricolaje (Solar asistido)

Es un vehículo de pequeño e-kart eléctrico biplaza con un panel solar.Básicamente ha sido una plataforma para experimentar con vehículos de cuatro ruedas, doble impulsión directa del motor, instalación solar, acero soldadura técnicas y en general un
Alarma de seguridad para el hogar o un Detector de movimiento con LCD y Sensor de Arduino,P.I.R.

Alarma de seguridad para el hogar o un Detector de movimiento con LCD y Sensor de Arduino,P.I.R.

Hola todo el mundo,Hoy voy a mostrarles como hacer una alarma de seguridad para el hogar interesante, maravilloso, barato. Este Gadget te ayuda a proteger su casa contra los ladrones. En este proyecto voy a utilizar un Freeduino Board(Arduino Compati
Arduino controla helicóptero

Arduino controla helicóptero

Este instructable fue creado en cumplimiento de la exigencia de proyecto de la Makecourse de la Universidad de South Florida (www.makecourse.com). El objetivo de este curso fue enseñar creatividad, el ingenio y la aplicación práctica de habilidades c
Arduino aire Cap-sentido Piano

Arduino aire Cap-sentido Piano

recientemente obtuve mi envío de 10 zumbadores ordené un mes atrás, así que tan pronto como les llegué estaba ansioso de hacer algo divertido con ellos, así que miró a su alrededor un poco y buscado qué hacer con ellos y por pasar un tiempo en www.ar
Cómo construir un vehículo eléctrico con un presupuesto ajustado para la cama barato, eléctrico

Cómo construir un vehículo eléctrico con un presupuesto ajustado para la cama barato, eléctrico

esto es acerca de cómo construí un kart eléctrico realmente baratos que se convirtió en una batería powered cama y le mostrará cómo lo hice para que usted consiga ideas para un proyecto similar. Lo hice para realmente ayudarme a aprender sobre la con