Lab_interaccio/2009/teresa/applet/teresa.cpp
2025-02-25 21:21:58 +01:00

121 lines
2.8 KiB
C++

#include "WProgram.h"
void setup();
void loop();
int sensor=0; // Salida analogica del multiplexor
int pad=1; // Entrada analogica
int bit1=6; // PIN digital al S2 del multiplexor
int bit2=5; // PIN digital al S1 del multiplexor
int bit3=4; // PIN digital al S0 del multiplexor
int id=1;
int val=0;
long int env=0;
int res=10;
int vald[9] = {
0, 0, 0, 0, 0, 0, 0, 0, 0 };
void setup()
{
Serial.begin(115200);
pinMode(bit1,OUTPUT);
pinMode(bit2,OUTPUT);
pinMode(bit3,OUTPUT);
pinMode(14,INPUT);
pinMode(15,INPUT);
digitalWrite(14,HIGH);
digitalWrite(15,HIGH);
}
void loop()
{
for (int i=0;i<8;i++)
{ // Recorre las 8 posiciones del multiplexor
switch (i) {
case 0:
digitalWrite(bit1,LOW); // Posici?n 0 --> S0=0, S1=0 y S3 =0 (en binario)
digitalWrite(bit2,LOW);
digitalWrite(bit3,LOW);
break;
case 1:
digitalWrite(bit1,LOW);
digitalWrite(bit2,LOW);
digitalWrite(bit3,HIGH);
break;
case 2:
digitalWrite(bit1,LOW);
digitalWrite(bit2,HIGH);
digitalWrite(bit3,LOW);
break;
case 3:
digitalWrite(bit1,LOW);
digitalWrite(bit2,HIGH);
digitalWrite(bit3,HIGH);
break;
case 4:
digitalWrite(bit1,HIGH);
digitalWrite(bit2,LOW);
digitalWrite(bit3,LOW);
break;
case 5:
digitalWrite(bit1,HIGH);
digitalWrite(bit2,LOW);
digitalWrite(bit3,HIGH);
break;
case 6:
digitalWrite(bit1,HIGH);
digitalWrite(bit2,HIGH);
digitalWrite(bit3,LOW);
break;
case 7:
digitalWrite(bit1,HIGH);
digitalWrite(bit2,HIGH);
digitalWrite(bit3,HIGH);
break;
}
delay(10);
val = analogRead(sensor); // Lee el valor del pad
//if ((val<=vald[i]-res)||(val>=vald[i]+res))
//{
vald[i] =val;
/*Serial.print("Valor de ");
Serial.print(i);
Serial.print(" es: ");*/
Serial.print(200+id*10+i,BYTE);
Serial.print(val/5,BYTE);
//}
}
val = analogRead(pad); // Lee el valor del pad
//if ((val<=vald[8]-res)||(val>=vald[8]+res))
//{
vald[8] =val;
/*Serial.print("Valor de ");
Serial.print(8);
Serial.print(" es: "); */
Serial.print(200+id*10+8,BYTE);
Serial.print(val/5,BYTE);
delay(20);
//}
}
int main(void)
{
init();
setup();
for (;;)
loop();
return 0;
}