Paso 6: código de
Perdí la versión completa del código y se trata de la fase de pruebas pero funciona remoto, sólo necesita segundo decodificador configurado. Recuperarlo o escribir cuanto antes y subirlo aquí.
Edición: He encontrado y había subido la versión completa del código.
Control remoto
Primero importar librería IRremote e inicializarlo:
Biblioteca de //import #include antes de incluir desde aquí
byte RECV_PIN = 11;
Irrecv(RECV_PIN) de IRrecv; inicialización de
resultados de la decode_results;
Setup() dentro
irrecv.enableIRIn(); permiten ir en
interior loop()
Si (irrecv.decode (y resultados)) //this comprueba si llegaron nuevos datos
{//inside comprobar qué botón fue presionado
Si (results.value == 0xCC91D36E) {//volume abajo presionado
volcnt-=1; muxWrite(volcnt);
}
else if (results.value == 0xE936013E) {//volume por prensado
volcnt += 1; muxWrite(volcnt);
}
Delay(100); Esto es opcional solo frena el cambio de volumen
irrecv.resume(); Espere próxima
}
Codificadores rotativos
Ninguna librería adicional es necesario para codificadores.
Programa de instalación
#define ENC_A 8
#define ENC_B 9
#define ENC_PORT PINB
Setup()
pinMode (ENC_A, entrada);
pinMode (ENC_B, entrada);
Loop()
tmpdata = read_encoder(); Lea el nuevo estado sea -1 izquierda gire, 0 no turn o 1 girar a la derecha
Si (tmpdata) {volcnt += tmpdata; muxWrite(volcnt);}
Read_encoder()
He encontrado esta función en algún lugar en línea
int8_t read_encoder() {}
int8_t estática enc_states [] = {0, - 1,1,0,1,0,0, -1, - 1,0,0,1,0,1,-1,0};
old_AB de uint8_t estática = 0;
old_AB << = 2; recordar el anterior estado old_AB | = (ENC_PORT & 0 x 03); Agregar estado actual retorno (enc_states [(old_AB & 0x0f)]);
}
Resto del código está controlando salidas, escribir a baja o alta en las patillas.