Páginas
lunes, 6 de marzo de 2023
sábado, 25 de febrero de 2023
jueves, 23 de febrero de 2023
viernes, 17 de febrero de 2023
domingo, 12 de febrero de 2023
miércoles, 8 de febrero de 2023
sábado, 28 de enero de 2023
miércoles, 18 de enero de 2023
sábado, 14 de enero de 2023
sábado, 31 de diciembre de 2022
lunes, 19 de diciembre de 2022
MULTIPPLEXOR (MUX) HP4067 de 16 canales para aumentar pines a tu arduino...
código básico
//codigo para usar un MUX MULTIPLEXOR/DEMULTIPLEXOR
int S0 = 7;//CONFIGURACION DE PINES
int S1 = 6;
int S2 = 5;
int S3 = 4;
int SIG = 3;//PIN DE ACTIVACION DE SEÑAL ALTO O BAJO
void setup()
{
pinMode(S0,OUTPUT);//CONFIGURADOS COMO SALIDA PARA ACTIVAR EL CODIGO BINARIO
pinMode(S1,OUTPUT);
pinMode(S2,OUTPUT);
pinMode(S3,OUTPUT);
pinMode(SIG,OUTPUT);
}
void loop()
{
//SE HACEN LAS COMBINACIONES BINARIAS DE CERO A 15 PARA ACTIVAR UNA CANAL
//SE ACTIVA CANAL 0
//digitalWrite(S0,LOW);//COMBINACION BINARIA CERO PARA ACTIVAR EL CANAL C0 S3 S2 S1 S0
//digitalWrite(S1,LOW);// 0 0 0 0
//digitalWrite(S2,LOW);
//digitalWrite(S3,LOW);
// digitalWrite(S0,HIGH);//COMBINACION BINARIA UNO PARA ACTIVAR EL CANAL C1 S3 S2 S1 S0
// digitalWrite(S1,LOW);// 0 0 0 1
// digitalWrite(S2,LOW);
//digitalWrite(S3,LOW);
// digitalWrite(S0,LOW);//COMBINACION BINARIA DOS PARA ACTIVAR EL CANAL C2 S3 S2 S1 S0
// digitalWrite(S1,HIGH);// 0 0 1 0
// digitalWrite(S2,LOW);
// digitalWrite(S3,LOW);
digitalWrite(S0, HIGH);//COMBINACION BINARIA TRES PARA ACTIVAR EL CANAL C3 S3 S2 S1 S0
digitalWrite(S1,HIGH);// 0 0 1 1
digitalWrite(S2,LOW);
digitalWrite(S3,LOW);
// ACTIVO EL DATO A ENVIAR POR PIN SIG
digitalWrite(SIG, HIGH);
delay(500);
digitalWrite(SIG, LOW);
delay(500);
}
código mas compacto con bitread
//codigo para usar un MUX MULTIPLEXOR/DEMULTIPLEXOR
int S0 = 7;//CONFIGURACION DE PINES
int S1 = 6;
int S2 = 5;
int S3 = 4;
int SIG = 3;//PIN DE ACTIVACION DE SEÑAL ALTO O BAJO
int seleccion_canal(byte canal)//se usa int para retornar un valor, si se usa void no retorna
{
// bitRead(x, n)
// Parámetros
// x: el número desde el que leer.
// n: qué bit leer, comenzando en 0 para el bit menos significativo (más a la derecha).
//bitRead escribe un numero binario de un Byte ejemplo bitRead(3)= bitRead(00000011)
//si colocamos bitRead(3,2) 3 es el numero a leer y de ese se toma o leer el valor de la posicion 2 ejemplo 1
digitalWrite(S0,bitRead(canal,0));//s0,1 0101
digitalWrite(S1,bitRead(canal,1));//s1,0
digitalWrite(S2,bitRead(canal,2));//s2,1
digitalWrite(S3,bitRead(canal,3));//s3,0
}
void setup()
{
pinMode(S0,OUTPUT);//CONFIGURADOS COMO SALIDA PARA ACTIVAR EL CODIGO BINARIO
pinMode(S1,OUTPUT);
pinMode(S2,OUTPUT);
pinMode(S3,OUTPUT);
pinMode(SIG,OUTPUT);
}
void loop()
{
//SE HACEN LAS COMBINACIONES BINARIAS DE CERO A 15 PARA ACTIVAR UNA CANAL
//SE ACTIVA CANAL
seleccion_canal(3);
// ACTIVO EL DATO A ENVIAR POR PIN SIG
digitalWrite(SIG, HIGH);
delay(500);
digitalWrite(SIG, LOW);
delay(500);
}
codigo lectira analogica demultiplexor
//codigo para usar un MUX MULTIPLEXOR/DEMULTIPLEXOR
int S0 = 7;//CONFIGURACION DE PINES
int S1 = 6;
int S2 = 5;
int S3 = 4;
int SIG = A0;//ESTA VEZ SERA USADO COMO ENTRADA
int seleccion_canal(byte canal)//se usa int para retornar un valor, si se usa void no retorna
{
// bitRead(x, n)
// Parámetros
// x: el número desde el que leer.
// n: qué bit leer, comenzando en 0 para el bit menos significativo (más a la derecha).
//bitRead escribe un numero binario de un Byte ejemplo bitRead(3)= bitRead(00000011)
//si colocamos bitRead(3,2) 3 es el numero a leer y de ese se toma o leer el valor de la posicion 2 ejemplo 1
digitalWrite(S0,bitRead(canal,0));
digitalWrite(S1,bitRead(canal,1));
digitalWrite(S2,bitRead(canal,2));
digitalWrite(S3,bitRead(canal,3));
}
void setup()
{
Serial.begin(9600);
pinMode(S0,OUTPUT);//CONFIGURADOS COMO SALIDA PARA ACTIVAR EL CODIGO BINARIO
pinMode(S1,OUTPUT);
pinMode(S2,OUTPUT);
pinMode(S3,OUTPUT);
//pinMode(SIG,OUTPUT);
}
void loop()
{
//SE HACEN LAS COMBINACIONES BINARIAS DE CERO A 15 PARA ACTIVAR UNA CANAL
//SE ACTIVA CANAL
seleccion_canal(0);
int bits = analogRead(A0);
Serial.println(bits);
delay(50);
}
domingo, 18 de diciembre de 2022
Suscribirse a:
Entradas (Atom)