Módulos Arduino y Raspberry Pi Cuarta parte Leave a comment

Comparte este Post

Módulos Arduino y Raspberry Pi Cuarta Parte

KY-016: Módulo LED THT RGB Tricolor

Descripción:
Led THT 5mm Tricolor con 3 resistencias SMD de 150Ω. Podríamos construír nuestro propio módulo en el protoboard o en una placa PCB Experimental, colocando los 4 pines del LED THT 5mm Cátodo común, el pin al lado del cátodo es el Pin R(rojo), del otro lado del cátodo tendremos los pines G(verde) y B(azul). Quedándonos R, GND, G, B, a los 3 leds les conectaremos una resistencia THT de 150Ω (Marrón, Verde, Negro, Negro, Marrón) y soldaremos cuatro Pines si utilizamos un PCB Experimental.

Conexión Arduino:

 

Código Arduino:

int Led_Red = 9;
int Led_Green = 10;
int Led_Blue = 11;
  
void setup ()
{
  pinMode (Led_Red, OUTPUT); 
  pinMode (Led_Green, OUTPUT);
  pinMode (Led_Blue, OUTPUT); 
}
  
void loop () 
{
  digitalWrite (Led_Red, HIGH); 
  digitalWrite (Led_Green, LOW); 
  digitalWrite (Led_Blue, LOW); 
  delay (3000);
  
  digitalWrite (Led_Red, LOW); 
  digitalWrite (Led_Green, HIGH); 
  digitalWrite (Led_Blue, LOW); 
  delay (3000); 
   
  digitalWrite (Led_Red, LOW);
  digitalWrite (Led_Green, LOW); 
  digitalWrite (Led_Blue, HIGH); 
  delay (3000); 
}

Conexión Raspberry Pi:

 

Código Raspberry Pi:

import RPi.GPIO as GPIO
import time
   
GPIO.setmode(GPIO.BCM)

LED_RED = 6
LED_GREEN = 5
LED_BLUE = 4
 
GPIO.setup(LED_RED, GPIO.OUT, initial= GPIO.LOW)
GPIO.setup(LED_GREEN, GPIO.OUT, initial= GPIO.LOW)
GPIO.setup(LED_BLUE, GPIO.OUT, initial= GPIO.LOW)
   
print ("LED-test [press ctrl+c para finalizar]")
  
try:
        while True:
            print("LED RED is on for 3 seconds")
            GPIO.output(LED_RED,GPIO.HIGH) 
            GPIO.output(LED_GREEN,GPIO.LOW) 
            GPIO.output(LED_BLUE,GPIO.LOW) 
            time.sleep(3) 
            print("LED GREEN is on for 3 seconds") 
            GPIO.output(LED_RED,GPIO.LOW) 
            GPIO.output(LED_GREEN,GPIO.HIGH) 
            GPIO.output(LED_BLUE,GPIO.LOW) 
            time.sleep(3) 
            print("LED BLUE is on for 3 seconds") 
            GPIO.output(LED_RED,GPIO.LOW) 
            GPIO.output(LED_GREEN,GPIO.LOW) 
            GPIO.output(LED_BLUE,GPIO.HIGH) 
            time.sleep(3)

except KeyboardInterrupt:
        GPIO.cleanup()

Para correr el programa abrimos terminal y tecleamos:


KY-017: Módulo Interruptor de Mercurio

Descripción:
PRECAUCIÓN peligro de contaminación por Mercurio, no apto para niños, no dejar a su alcance, hay otros módulos que realizan lo mismo sin peligro!. Ni el autor ni la web Ditecno Makers se hacen responsables por imprudencias, quedan debidamente notificados!.

Es un conmutador de inclinación de mercurio que le permite detectar la inclinación de su objeto para que pueda tomar la acción apropiada. Es una buena alternativa de bajo costo para un acelerómetro de 6 ejes. Posee un Led indicador y una resistencia de 18000 MΩ.

Conexión Arduino:

 

 

Código Arduino:

int tiltSwitch = 3;
int tiltVal; 
boolean bIsTilted ;

void setup ()
{
Serial.begin(9600);
pinMode (tiltSwitch, INPUT) ;
}

void loop ()
{
tiltVal = digitalRead (tiltSwitch) ;
if (tiltVal == HIGH) 
{
if (!bIsTilted){
bIsTilted = true;
Serial.println("** -Inclinado - **");
} 
}
else
{
if (bIsTilted){
bIsTilted = false;
Serial.println("No inclinado");
} 
}
}

Conexión Raspberry Pi:

 

Código Raspberry Pi:

import RPi.GPIO as GPIO
import time
   
GPIO.setmode(GPIO.BCM)
   
GPIO_PIN = 24
GPIO.setup(GPIO_PIN, GPIO.IN)
   
print ("Sensor-test [press ctrl+c para finalizar]")
   
def outFunction(null):
        print("Señal detectada")
   
GPIO.add_event_detect(GPIO_PIN, GPIO.FALLING, callback=outFunction, bouncetime=100) 
    
try:
        while True:
                time.sleep(1)
   
except KeyboardInterrupt:
        GPIO.cleanup()

Para correr el programa abrimos terminal y tecleamos:


KY-018: Módulo Fotoresistor

Descripción:
Posee un fotoresistor con una resistencia de 10 KΩ. Es un sensor análogo poor lo que usaremos un convertidor ADC (KY-053 ADS1115) en Raspberry Pi.

Conexión Arduino:

 

 

Código Arduino:

int sensorPin = A3; 
 
void setup()
{
    Serial.begin(9600);
}
 
void loop()
{       
    int rawValue = analogRead(sensorPin);
        float voltage = rawValue * (5.0/1023) * 1000;
         
        float resitance = 10000 * ( voltage / ( 5000.0 - voltage) );
        
    Serial.print("Voltage value:"); Serial.print(voltage); Serial.print("mV");
    Serial.print(", Resistor value:"); Serial.print(resitance); Serial.println("Ohm");
    Serial.println("---------------------------------------");
 
    delay(500);
}

Conexión Raspberry Pi:

Código Raspberry Pi:

from Adafruit_ADS1x15 import ADS1x15
from time import sleep

import time, signal, sys, os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
 
delayTime = 0.5

ADS1115 = 0x01  # 16-bit

gain = 4096  # +/- 4.096V
sps = 64
adc_channel_0 = 0    # Channel 0
adc_channel_1 = 1    # Channel 1
adc_channel_2 = 2    # Channel 2
adc_channel_3 = 3    # Channel 3

adc = ADS1x15(ic=ADS1115)
 
try:
        while True:
                adc0 = adc.readADCSingleEnded(adc_channel_0, gain, sps)
                adc1 = adc.readADCSingleEnded(adc_channel_1, gain, sps)
                adc2 = adc.readADCSingleEnded(adc_channel_2, gain, sps)
                adc3 = adc.readADCSingleEnded(adc_channel_3, gain, sps)
 
                print ("Channel 0:", adc0, "mV ")
                print ("Channel 1:", adc1, "mV ")
                print ("Channel 2:", adc2, "mV ")
                print ("Channel 3:", adc3, "mV ")
                print ("---------------------------------------")
 
                time.sleep(delayTime)
 
except KeyboardInterrupt:
        GPIO.cleanup()

Para correr el programa abrimos terminal y tecleamos:


KY-019: Módulo Relay 5V


Descripción:
Es un dispositivo eléctrico que funciona como un interruptor pero es accionado mediante un electro imán. Posee 5 o 6 contactos, en el caso de Raspberry Pi posee 6 ya que un pin es de señal, positivo y GND como entradas, del lado de las salidas posee 3 contactos NO(normalmente abierto-open-) NC(normalmente cerrado-close-), C(común-common-).

  • Señal de control TTL 5v a 12v.
  • 10 A 250V Corriente Alterna Máximo.
  • 10A 30V Corriente Continua Máximo.
  • 3 Pines de entrada S, +, -.
  • 3 Salidas NC, C, NO.
  • Led Indicador de bobina excitada.
  • Diodo rectificador de protección.

Al excitar la bobina con positivo(+5v) y GND(-) se genera un campo electromagnético que hace cambiar de estado a los contactos, es decir, NO se cierra y NC se abre. Esto conlleva un riesgo para la Raspberry pi en particular que viene solucionado en el módulo de relay (KY-019). Cuál es el riesgo?. La Corriente inversa, al dejar de excitar los contactos por particularidades propias de la física obtenemos una corriente inversa a la que ofrecimos al sistema, lo cuál, pese a ser baja, podría dañar nuestro Pin, para evitar esto, se coloca un diodo que no permite el regreso de esa corriente. Es por esto que debemos respetar la polaridad indicada por el fabricante, normalmente esto no importa, si alimentamos el pin (-) con 5v y el pin (+) con GND el relay funcionaría perfectamente, pero como tenemos un diodo protegiéndonos, hay que respetar lo que indica el fabricante.

Conexión Arduino:

Código Arduino:

int relay = 10;
 
delayTime = 1
 
void setup ()
{
  pinMode (relay, OUTPUT); 
}

void loop ()
{
  digitalWrite (relay, HIGH); 
  delay (delayTime * 1000);
  digitalWrite (relay, LOW); 
  delay (delayTime * 1000);
}

Conexión Raspberry Pi:

Código Raspberry Pi:

import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BCM)

delayTime = 1

RELAIS_PIN = 24
GPIO.setup(RELAIS_PIN, GPIO.OUT)
GPIO.output(RELAIS_PIN, False)
 
print ("Sensor-test [press ctrl+c to end]")

try:
        while True:
            GPIO.output(RELAIS_PIN, True) 
            time.sleep(delayTime)
            GPIO.output(RELAIS_PIN, False) 
            time.sleep(delayTime)
 
except KeyboardInterrupt:
        GPIO.cleanup()

Para correr el programa abrimos terminal y tecleamos:


KY-020: Módulo Interruptor de inclinación


Descripción:
Este es un módulo cuenta con una salida digital que es activada ante el cambio en el grado de inclinación del sensor integrado en la placa.

  • Voltaje de funcionamiento: 3.3V ~ 5V
  • Calificación gama Valoración: 50mA 12VDC
  • Resistencia de los contactos Resistencia de contacto: 50 max (inicial)
  • Resistencia de aislamiento Resistencia de aislamiento: 100M (min 250V DC)
  • Resistencia a la compresión Resistencia dieléctrica: AC250V (50 / 60Hz para 1 minuto)
  • Vida mecánica: 100.000 ciclos
  • Temperatura ambiente Temperatura ambiente: -25º C a 105ºC

Conexión Arduino:

Código Arduino:

int Led = 13;
int Sensor = 3;
int val;
   
void setup ()
{
  pinMode (Led, OUTPUT) ;
  pinMode (Sensor, INPUT) ; 
}
   
void loop ()
{
  val = digitalRead (Sensor) ; 
   
  if (val == HIGH) 
  {
    digitalWrite (Led, LOW);
  }
  else
  {
    digitalWrite (Led, HIGH);
  }
}

Conexión Raspberry Pi:

 

Código Raspberry Pi:

import RPi.GPIO as GPIO
import time
   
GPIO.setmode(GPIO.BCM)

GPIO_PIN = 24
GPIO.setup(GPIO_PIN, GPIO.IN)
   
print("Sensor-test [press ctrl+c para finalizar]")
  
def outFunction(null):
        print("Señal detectada")
   
GPIO.add_event_detect(GPIO_PIN, GPIO.FALLING, callback=outFunction, bouncetime=100) 
   
try:
        while True:
                time.sleep(1)

except KeyboardInterrupt:
        GPIO.cleanup()

Para correr el programa abrimos terminal y tecleamos:

Gracias por leer Ditecno Makers!!!

Módulos Arduino y Raspberry Pi Primera Parte

Módulos Arduino y Raspberry Pi Segunda Parte

Módulos Arduino y Raspberry Pi Tercera Parte


Comparte este Post

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Abrir chat
0

Tu carrito