7285bdd702c227bb224b3261adb25e51 - Electrogeek

Módulos Arduino y Raspberry Pi Cuarta parte Deja un comentario

Módulos Arduino y Raspberry Pi Cuarta Parte

KY-016: Módulo LED THT RGB Tricolor

16m - ElectrogeekDescripció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:

KY 016 bb - Electrogeek

ky16t - Electrogeek

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:

KY 016pi bb - Electrogeek

ky16tpi - Electrogeek

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

17m - Electrogeek

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:

KY 017 bb 292x300 1 - Electrogeek

ky017t - Electrogeek

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:

KY 017pi bb - Electrogeek

ky017tpi - Electrogeek

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

18m - Electrogeek

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:

KY 018 bb 275x300 1 - Electrogeek

ky018t - Electrogeek

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:

KY 018pi bb - Electrogeek

ky018tpi - Electrogeek

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

19m - Electrogeek
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:

KY 019 bb - Electrogeek

ky019t - Electrogeek

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:

KY 019pi bb 1 - Electrogeekky019tpi - Electrogeek

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

20m - Electrogeek
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:

KY 020 bb - Electrogeek

ky020t - Electrogeek

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:

KY 020pi bb - Electrogeek

ky020tpi - Electrogeek

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()

 

Comparte este Post

Deja una respuesta

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 el chat
0

Tu carrito