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
sábado, 17 de diciembre de 2022
domingo, 11 de diciembre de 2022
lunes, 5 de diciembre de 2022
sábado, 3 de diciembre de 2022
miércoles, 30 de noviembre de 2022
domingo, 27 de noviembre de 2022
sábado, 26 de noviembre de 2022
domingo, 20 de noviembre de 2022
sábado, 12 de noviembre de 2022
domingo, 6 de noviembre de 2022
miércoles, 2 de noviembre de 2022
domingo, 30 de octubre de 2022
SOLUCION al error de conexión BLUETOOTH de APPINVENTOR con el modulo HC0...
código para descargar de la aplicación de appinventor
//#include <SoftwareSerial.h>
//para este ejemplo se usara la biblioteca myserial, si usa la nativa de arduino y tiene algun compoenente conectado a el desconectelo mientras envia
//SoftwareSerial mySerial(16, 17); // RX, TX//pines de conexion de un puerto auxiliar de comunicacion
int led1=13;
int led2=2;
char DATO;
void setup()
{
Serial.begin(9600);//configura la velocidad de comunicacion serial hacia el computador y pines, esta biblioteca
//comparte los pines fisicos del arduino junto los del pc
//mySerial.begin(9600);//configuro la velocidad de comunicacion de los pines a usar
//mySerial.println("buenvenidos");//sirve para imprimir un mensaje por el puerto que usted declare
Serial.println("bienvenido");//imprime un mensaje por el puerto serie hacia el computador por el puerto nativo del pc
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
digitalWrite(led2,LOW);//apaga un led
digitalWrite(led1,LOW);//apaga un led
delay(2000);
}
void loop()
{
if(Serial.available()>0)
{
DATO = Serial.read(); //LEE LOS DATOS DEL PUERTO SERIA Y LOS ALMACENA EN DATO
/////////////////////////////////////////////////////////////////////////////////////////
Serial.println(DATO);
if(DATO == '1')//si la letra que llega es A el servo se coloca en cero grados
{
digitalWrite(led1,HIGH);//prende un led
Serial.println("LED PIN 26 ENCENDIDO");//imprime un mensaje por el puerto serie hacia el computador
}
//////////////////////////////////////////////////////////////////////////////////////////
if(DATO == '2')//si la letra que llega es 1 el servo se coloca en cero grados
{
digitalWrite(led1,LOW);//apaga un led
Serial.println("LED PIN 26 APAGADO");//imprime un mensaje por el puerto serie hacia el computador
}
//////////////////////////////////////////////////////////////////////////////////////////
if(DATO == '3')//si la letra que llega es A el servo se coloca en cero grados
{
digitalWrite(led2,HIGH);//prende un led
Serial.println("LED PIN 26 ENCENDIDO");//imprime un mensaje por el puerto serie hacia el computador
}
//////////////////////////////////////////////////////////////////////////////////////////
if(DATO == '4')//si la letra que llega es 1 el servo se coloca en cero grados
{
digitalWrite(led2,LOW);//apaga un led
Serial.println("LED PIN 26 APAGADO");//imprime un mensaje por el puerto serie hacia el computador
}
//////////////////////////////////////////////////////////////////////////////////////////
}
}
sábado, 29 de octubre de 2022
Suscribirse a:
Entradas (Atom)
.jpg)