hola.
Estoy dando vueltas hace tienpo pero no logro entender como funciona.
Quiero controlar varias luces desde un programa y tengo problemas para poder interactuar las matrices con las variables.
ej. digitalWrite(out[pin], s2);
dejo el code y si alguien puede ayudarme se lo agradeceria.
#include <EEPROM.h>
int inA10 = A10;
int out[] = {0, 1, 2, 3, 4, 5, 6};
int count = 0;
char mat;
char pin;
int sen;
char buf;
char mat1[4][4];void setup(){
Serial.begin(9600);
for (count=0;count<6;count++) {
pinMode(out[count], OUTPUT);
}
}void loop() {
// se ingresan 4 calores,
//valor uno escribe o lee,
// valor dos matris donde guarga los valores, de mometo es 1
// valor tres pin a travajar
// valor cuatro enciende o apaga
//ingreso los cuatro valores juntos desde el serie
// ej. 112H ----- 1=write, 1=mat, 2=pin H=HIGH.if (Serial.available()>0){
buf = Serial.read();
if (buf == '1') {
Serial.println("write"); //escribe o enciende y apaga
writeMat();
}
if(buf == '2'){
Serial.println("read"); //lee el estado del pin
readMat();
}}
}//--------------------
void puls(){
}
//--------------------// guardo los valores dos, tres y cuatro en mat, pin y sen.
void writeMat() {
if (Serial.available()>0){
for (int i=0; i<3; i++){
buf = Serial.read();
delay(10);
switch (i){
case 0:
mat = buf;
break;
case 1:
pin = (buf-1);
break;
case 2:
if (buf == 'H'){
sen = HIGH;
}
if (buf == 'L'){
sen = LOW;
}
//digitalWrite(outA[0], s2);
Serial.print("Var Mat: ");
Serial.println(mat);
Serial.print("Var Pin: ");
Serial.println(pin);
Serial.print("Var Sen: ");
Serial.println(sen);
Serial.print("Es. Pin: ");
Serial.println(digitalRead(out[pin]));
Serial.print("Pins a Modif: ");
Serial.println(pin);
Serial.print("Read Dig.Pins: ");
Serial.println(digitalRead(out[pin]));
Serial.print("Señal enviada: ");
Serial.println(sen);digitalWrite(out[pin], s2);
Serial.print("Read Dig.Pins: ");
Serial.println(digitalRead(out[pin]));
Serial.println("");
Serial.println("Read Pins...");
Serial.print("Pin: ");
Serial.print(out[pin]);
Serial.print(" E= ");
Serial.print(out[pin]);
Serial.println("");
Serial.println("");
Serial.println("");
// mat1[s0][s1] = s2;
// Serial.println(mat1[s0][s1]);
break;
}}
/**Serial.print("M: ");
Serial.print(s0);
Serial.print(" V: ");
Serial.print(s1);
Serial.print(" E: ");
Serial.println(s2);
//Serial.print("E: ");
//Serial.println(mat1[s0][s1]);
s
**/
mat=0, pin=0, sen=0;
buf = 0;
Serial.flush();
return;
}
}//--------------------
void readMat() {
if (Serial.available()>0){
for (int i=0; i<2; i++){
buf = Serial.read();
//delay(10);
switch (i){
case 0:
mat = buf;
break;
case 1:
pin = buf;
break;
}}
/**Serial.print("M: ");
Serial.print(s0);
Serial.print(" V: ");
Serial.print(s1);
**/
Serial.print(" E: ");
Serial.println(mat1[mat][pin]);
mat=0, pin=0;
Serial.flush();
return;
}
}