0% found this document useful (0 votes)
39 views

Control Sumo Esp8266

This document defines pin assignments and functions for controlling motors and Neopixel lights on an ESP8266 board. It sets up WiFi access point, starts a web server, and defines functions to control motor direction and Neopixel color in response to commands received from the web server.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views

Control Sumo Esp8266

This document defines pin assignments and functions for controlling motors and Neopixel lights on an ESP8266 board. It sets up WiFi access point, starts a web server, and defines functions to control motor direction and Neopixel color in response to commands received from the web server.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

#define ena 14 // GPIO14(D5)

#define enb 12 // GPIO12(D6)


#define IN_1 15 // GPIO15(D8)
#define IN_2 13 // GPIO13(D7)
#define IN_3 2 // GPIO2(D4)
#define IN_4 0 // GPIO0(D3)
#define cny70 1 // GPIO0(tx)
#define PIN 4 // input pin Neopixel is attached to
#define NUMPIXELS 4 // GPIO4 (D2) number of neopixels in strip
#include <Adafruit_NeoPixel.h>
#include <WiFi.h>
//#include <ESP8266WiFi.h>
#include <WiFiClient.h>
//#include <ESP8266WebServer.h>
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB +
NEO_KHZ800);
int delayval=5;
int contpixel=1000; // variable acumuladora paara ejecutar cambio en pixel color
String valor; // la variable valor almacena el comando que proviene de la app de
appinventor
int velocidad = 800; // se puede configurado de 0 a 1023.
int vgiro = 3; // valor para giro mas abierto o cerrado
int Valor_cny70 = 0;
//////////////////////////////_________________________________// ws2811
int redColor = 0;
int greenColor = 0;
int blueColor = 0;
//////////////////////////////_________________________________// ws2811
const char* ssid ="ESP_Rufus";
const char* password = "12345678";
//ESP8266WebServer server(80);
WiFiServer server(80);
void setup()
{
pixels.begin();
pinMode(ena, OUTPUT);
pinMode(enb, OUTPUT);
pinMode(IN_1, OUTPUT);
pinMode(IN_2, OUTPUT);
pinMode(IN_3, OUTPUT);
pinMode(IN_4, OUTPUT);
pinMode(cny70, INPUT);
Serial.begin(115200);
WiFi.mode(WIFI_AP);
WiFi.softAP(ssid);
//WiFi.softAP(ssid, password); //con pasword
IPAddress myIP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(myIP);
// server.on ( "/", HTTP_handleRoot );
// server.onNotFound ( HTTP_handleRoot );
server.begin();
}
void avanzar(){

digitalWrite(IN_1, LOW);
digitalWrite(IN_2, HIGH);
// analogWrite(ena, velocidad);

digitalWrite(IN_3, LOW);
digitalWrite(IN_4, HIGH);
// analogWrite(enb, velocidad);
}

void retroceder(){

digitalWrite(IN_1, HIGH);
digitalWrite(IN_2, LOW);
// analogWrite(ena, velocidad);

digitalWrite(IN_3, HIGH);
digitalWrite(IN_4, LOW);
// analogWrite(enb, velocidad);
}

void derecha(){

digitalWrite(IN_1, HIGH);
digitalWrite(IN_2, LOW);
// analogWrite(ena, velocidad);

digitalWrite(IN_3, LOW);
digitalWrite(IN_4, HIGH);
// analogWrite(enb, velocidad);
}

void izquierda(){

digitalWrite(IN_1, LOW);
digitalWrite(IN_2, HIGH);
// analogWrite(ena, velocidad);

digitalWrite(IN_3, HIGH);
digitalWrite(IN_4, LOW);
// analogWrite(enb, velocidad);
}
void aderecha(){

digitalWrite(IN_1, LOW);
digitalWrite(IN_2, HIGH);
// analogWrite(ena, velocidad/vgiro);

digitalWrite(IN_3, LOW);
digitalWrite(IN_4, HIGH);
// analogWrite(enb, velocidad);
}

void aizquierda(){

digitalWrite(IN_1, LOW);
digitalWrite(IN_2, HIGH);
// analogWrite(ena, velocidad);

digitalWrite(IN_3, LOW);
digitalWrite(IN_4, HIGH);
// analogWrite(enb, velocidad/vgiro);
}

void rderecha(){

digitalWrite(IN_1, HIGH);
digitalWrite(IN_2, LOW);
// analogWrite(ena, velocidad/vgiro);

digitalWrite(IN_3, HIGH);
digitalWrite(IN_4, LOW);
// analogWrite(enb, velocidad);
}

void rizquierda(){

digitalWrite(IN_1, HIGH);
digitalWrite(IN_2, LOW);
// analogWrite(ena, velocidad);

digitalWrite(IN_3, HIGH);
digitalWrite(IN_4, LOW);
// analogWrite(enb, velocidad/vgiro);
}

void detener(){

digitalWrite(IN_1, LOW);
digitalWrite(IN_2, LOW);
// analogWrite(ena, velocidad);

digitalWrite(IN_3, LOW);
digitalWrite(IN_4, LOW);
// analogWrite(enb, velocidad);
}
void setColor(){
redColor = random(0, 255);
greenColor = random(0,255);
blueColor = random(0, 255);
}
void loop() {
server.handleClient();
if (contpixel==1000)
{
pixels.show();
setColor();
for (int i=0; i < NUMPIXELS; i++)
{
pixels.setPixelColor(i, pixels.Color(redColor, greenColor, blueColor));
pixels.show();
delay(delayval);
}
contpixel=0;
}
contpixel=contpixel+1;
////////////////////////////////
valor = server.arg("State");
if (valor == "a") avanzar();//adelante
else if (valor == "r") retroceder();//retroceder
else if (valor == "i") izquierda();//izquieerda
else if (valor == "d") derecha();//derech
else if (valor == "da") aderecha();//adelante derecha
else if (valor == "ia") aizquierda();//adelante izquierda
else if (valor == "dr") rderecha();//atras derecha
else if (valor == "ir") rizquierda();//atras izquierda
else if (valor == "dd1") velocidad = 400;
else if (valor == "1") velocidad = 550;
else if (valor == "2") velocidad = 700;
else if (valor == "3") velocidad = 840;
else if (valor == "4") velocidad = 999;
else if (valor == "s") detener();
/////////////////////////////////

}
/*
void HTTP_handleRoot(void) {
if( server.hasArg("State") ){
Serial.println(server.arg("State"));
}
server.send ( 200, "text/html", "" );
delay(1);
}
/////////////////////////////////////7
void sencny()
{
Valor_cny70=digitalRead(cny70);
delay(10);//Esperar 100 ms
if(Valor_cny70==0)
{
Serial.print("Linea negra");
}
else//Si el valor del sensro es 1
{
Serial.print("Linea blanca izquierda\n");
}Serial.print(Valor_cny70);
}*/

You might also like