Hola a todos , estoy intentando desarrollar un proyecto , con un módulo de 8 relés (de los cuales solo se usan 6), 3 leds de indicación de grupo y un sensor joystick de ps2.
La idea general es :
Controlar los relés en grupos de 2, uno enciende cuando el joystick se coloca hacia arriba en el eje y hacia abajo en el eje x el otro relé del grupo .
El joystick de ps2 posee un contacto cuando se pulsa hacia adentro, el cual serviría para cambiar al siguiente grupo de relés el cual funcionaría igual que el anterior , y el tercero también .
Tras la idea de hacer un contador para saber que grupo tenemos seleccionado con el pulsador del joystick , (Cada grupo , queda señalizado con un led {Led1 grupo 1 y asi respectivamente}.
El problema se me plantea cuando hay que usar el IDE de Arduino para el contador y para la medida analogica del joystick.
Os dejo el Código que e conseguido hacer hasta ahora , pero no está terminado .
int VERT = 7; // analog Eje VR Y
int HORIZ = 5; // analog EJE Vr X
int Button = 9; // digital press button of joystick
int ledPin1 = 10;
int ledPin2 = 2;
int ledPin3 = 3;
int ledPin4 = 4;
int ledPin5 = 5;
int ledPin6 = 6;
int ledPin7 = 7;
int ledPin8 = 8;
int value =0;
int contador = 0;
int estadoanteriorboton =0;
// Also connect the joystick VCC to Arduino 5V, and joystick GND to Arduino GND.
// This sketch outputs serial data at 9600 baud (open Serial Monitor to view).
void setup()
{
Serial.begin(9600);
// make the Button line an input
pinMode(Button,INPUT);
// make the SEL line an output
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
// turn on the pull-up resistor for the Button line and also the outputs (see http://arduino.cc/en/Tutorial/DigitalPins)
digitalWrite(Button,HIGH);
digitalWrite(ledPin1,HIGH);
digitalWrite(ledPin2,HIGH);
digitalWrite(ledPin3,HIGH);
digitalWrite(ledPin4,HIGH);
digitalWrite(ledPin5,HIGH);
digitalWrite(ledPin6,HIGH);
digitalWrite(ledPin7,HIGH);
digitalWrite(ledPin8,HIGH);
// set up serial port for output
}
void loop()
{
value = digitalRead(Button);
int vertical, horizontal, select;
// read all values from the joystick
vertical = analogRead(VERT); // will be 0-1023
horizontal = analogRead(HORIZ); // will be 0-1023
select = digitalRead(Button); // will be HIGH (1) if not pressed, and LOW (0) if pressed
// print out the values
//Serial.print("vertical: ");
// Serial.print(vertical,DEC);
//Serial.print(" horizontal: ");
//Serial.print(horizontal,DEC);
// Serial.print(" select: ");
//if(select == HIGH)
// Serial.println("not pressed");
//else
// Serial.println("PRESSED!");
if(value != estadoanteriorboton){
if(value ==1){
contador++;
Serial.print(contador);
Serial.write(3);
if (contador==3){
contador=0;
}
if (contador==1);
Serial.read("vertical:");
else if ("vertical"== 1023);
digitalWrite(ledPin1,HIGH);
}
estadoanteriorboton = value;
}