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:

  • sudo python ky-016.py

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:

  • sudo python ky-017.py

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:

  • sudo python ky-018.py

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:

  • sudo python ky-019.py

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:

  • sudo python ky-020.py

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

views
19

ElectroMercado

    2 Comentarios
    1. DitecnoDigital
      DitecnoDigital 7 meses

      Excelente, va siendo uno de los tutoriales mas completo de internet juntos sumando los cuatro, aparte de ser en las dos plataformas mas populares de la actualidad Arduino y Raspberry.

      1+

    Contesta

    CONTACTANOS

    Esta es su red social de tecnología para compartir tus ideas y proyectos .Puedes enviarnos un correo si tienes dudas.Nos vemos

    Enviando

    Inicia Sesión con tu Usuario y Contraseña

    o    

    ¿Olvidó sus datos?

    Create Account