Escolar Documentos
Profissional Documentos
Cultura Documentos
// INCLUSÃO DE BIBLIOTECAS
#include <PS2X_lib.h>
// DEFINIÇÕES DE PINOS
#define pinFarolE 8
#define pinFarolD 7
#define pinPiscaE A0
#define pinPiscaD A3
#define pinFreioE A1
#define pinFreioD A2
#define dirFrente 5
#define dirTras 3
#define esqFrente 9
#define esqTras 6
// DEFINIÇÕES
#define FRENTE 1
#define PARADO 0
#define TRAS -1
//-----Definiçoes provisórias-----
#define x
#define y
#define xlido
#define ylido
// INSTANCIANDO OBJETOS
PS2X ps2x;
// DECLARAÇÃO DE FUNÇÕES
void configuraControle();
void configuraLeds();
void controlaLeds();
// DECLARAÇÃO DE VARIÁVEIS
bool piscaE, piscaD;
bool freio, farol;
void setup() {
Serial.begin(9600);
configuraLeds();
configuraControle();
void loop() {
ps2x.read_gamepad();
}
else if (ps2x.Button(PSB_PAD_LEFT)) { // VIRAR PRA ESQUERDA
// MOTOR DIREITO PARA FRENTE
analogWrite(dirFrente, velocidadeD);
analogWrite(dirTras, LOW);
}
else if (ps2x.Button(PSB_PAD_DOWN)) { // ANDAR PRA TRAS
// MOTOR DIREITO PARA TRAS
analogWrite(dirFrente, LOW);
analogWrite(dirTras, velocidadeE);
//Serial.println("Motores Standby");
controlaLeds();
delay(50);
}
// IMPLEMENTO DE FUNÇÕES
void configuraControle()
{
int erroControle = ps2x.config_gamepad(13, 11, 10, 12, true, true);
if (!erroControle) {
Serial.println("Controle encontrado");
} else {
Serial.println("Controle não encontrado");
while (erroControle) {
erro();
if (bitRead(millis(), 11)) erroControle = ps2x.config_gamepad(13, 11, 10, 12,
true, true);
}
}
}
void configuraLeds() {
pinMode(pinFarolE, OUTPUT);
pinMode(pinFarolD, OUTPUT);
pinMode(pinPiscaE, OUTPUT);
pinMode(pinPiscaD, OUTPUT);
pinMode(pinFreioE, OUTPUT);
pinMode(pinFreioD, OUTPUT);
digitalWrite(pinFarolE, LOW);
digitalWrite(pinFarolD, LOW);
digitalWrite(pinPiscaE, LOW);
digitalWrite(pinPiscaD, LOW);
digitalWrite(pinFreioE, LOW);
digitalWrite(pinFreioD, LOW);
}
void controlaLeds() {
if (ps2x.NewButtonState()) {
if (ps2x.ButtonPressed(PSB_PINK)) {
piscaE = !piscaE;
Serial.println("Pisca Esquerdo Ligado");
}
if (ps2x.ButtonPressed(PSB_RED)) {
piscaD = !piscaD;
Serial.println("Pisca Direito ligado");
}
if (ps2x.ButtonPressed(PSB_BLUE)) {
freio = !freio;
Serial.println("Freio acionado");
}
if (ps2x.ButtonPressed(PSB_GREEN)) {
farol = !farol;
Serial.println("Faróis ligados");
}
}
if (farol) {
digitalWrite(pinFarolE, HIGH);
digitalWrite(pinFarolD, HIGH);
}
else {
digitalWrite(pinFarolE, LOW);
digitalWrite(pinFarolD, LOW);
}
if (freio) {
digitalWrite(pinFreioE, HIGH);
digitalWrite(pinFreioD, HIGH);
}
else {
digitalWrite(pinFreioE, LOW);
digitalWrite(pinFreioD, LOW);
}
}
void erro() {
digitalWrite(pinFarolE, bitRead(millis(), 7));
digitalWrite(pinFarolD, bitRead(millis(), 7));
digitalWrite(pinPiscaE, bitRead(millis(), 7));
digitalWrite(pinPiscaD, bitRead(millis(), 7));
digitalWrite(pinFreioE, bitRead(millis(), 7));
digitalWrite(pinFreioD, bitRead(millis(), 7));
}