Módulos Arduino y Raspberry Pi Quinta parte

Tutorial Módulos 37 en 1, con sus diagramas de conexión Fritzing y su programación en Arduino y Raspberry Pi.

KY-021: Módulo mini interruptor magnético Reed

Descripción:

Interruptor magnético normalmente abierto (NO), que cierra su contacto (NC) al detectar un campo magnético cercano.

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 to end]")
    
def outFunction(null):
        print("Signal detected")
    
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-021.py

KY-022: Módulo receptor de infrarrojos

Descripción:

  • Módulo receptor de rayos infrarrojos a 38 Khz, una resistencia de 1 kΩ y un LED.
  • Distancia: Mayor a 8 metros
  • Onda: 940Nm
  • Frecuencia de cristal: 455KHZ crystal
  • Frecuencia de emisión: 38KHZ
  • Encoding: encoding format for the NEC
  • Power: CR2025/1600mAH

Conexión Arduino:

Código Arduino:

#include <IRremote.h>
#include <IRremoteInt.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); 
}

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); 
}
}

Conexión Raspberry Pi:

Código Raspberry Pi:

begin remote

name BLACK
driver devinput
bits 56
eps 30
aeps 100

one 0 0
zero 0 0
pre_data_bits 72
pre_data 0x3
gap 361
toggle_bit_mask 0x0
frequency 38000

begin codes
KEY_MENU 0x4E0000010001E3
BTN_DPAD_UP 0x610000010001CF
BTN_DPAD_DOWN 0x610000010001CE
BTN_DPAD_LEFT 0x630000010001CF
BTN_DPAD_RIGHT 0x680000010001C9
BTN_MIDDLE 0x850000010001AB
BTN_EXTRA 0x660000010001CB
KEY_LAST 0x630000010001CD
KEY_HOME 0x540000010001C3
KEY_PLAY 0x630000010001CA
KEY_PREVIOUSSONG 0x670000010001C6
KEY_NEXTSONG 0x670000010001CC
KEY_VOLUMEDOWN 0x610000010001CC
KEY_VOLUMEUP 0x830000010001AF
KEY_SHUFFLE 0x4D0000010001E4
end codes

end remote

KY-023: Módulo Joystick dual axis

Descripción:

El módulo joystick es utilizado para proyectos de robótica que necesitan movilidad análoga, posee dos potenciómetros en un ángulo de 90 grados y un botón, genera una salida de 2.5V en X e Y cuando está en posición de descanso. Mover el joystick hará que la salida varíe de 0v a 5V dependiendo de su dirección.

Conexión Arduino:

Código Arduino:

int VR_X = A0; 
int VR_Y = A1;
int SW = 7; 
 
void setup ()
{
  pinMode (VR_X, INPUT);
  pinMode (VR_Y, INPUT);
  pinMode (SW, INPUT);
   
  digitalWrite(SW, HIGH);  
   
  Serial.begin (9600); 
}

void loop ()
{
  float x, y;
  int Knopf;
   
  x = analogRead (VR_X) * (5.0 / 1023.0); 
  y = analogRead (VR_Y) * (5.0 / 1023.0);
  Knopf = digitalRead (SW);
  
  Serial.print ("X-axis:"); Serial.print (x, 4);  Serial.print ("V, ");
  Serial.print ("Y-axis:"); Serial.print (y, 4);  Serial.print ("V, ");
  Serial.print ("Boton:");
 
  if(Knopf==1)
  {
      Serial.println ("no presionado");
  }
  else
  {
      Serial.println ("presionado");
  }
  delay (200);
}

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 

gain = 4096

sps = 64
adc_channel_0 = 0
adc_channel_1 = 1
adc_channel_2 = 2
adc_channel_3 = 3

adc = ADS1x15(ic=ADS1115)
 
Button_PIN = 24
GPIO.setup(Button_PIN, GPIO.IN, pull_up_down = GPIO.PUD_UP)
  
try:
        while True:
                x = adc.readADCSingleEnded(adc_channel_0, gain, sps)
                y = adc.readADCSingleEnded(adc_channel_1, gain, sps)
  
                if GPIO.input(Button_PIN) == True:
                        print ("X-axis:", x,"mV, ","Y-axis:", y,"mV, Button: not pushed")
                else:
                        print ("X-axis:", x, "mV, ", "Y-axis:", y, "mV, Button: pushed")
                print ("---------------------------------------")
  
                button_pressed = False
                time.sleep(delayTime)

except KeyboardInterrupt:
        GPIO.cleanup()

Para correr el programa abrimos terminal y tecleamos:

  • sudo python ky-023.py

KY-024: Sensor linear efecto Hall

Descripción:

Este sensor mide un campo magnético. Si existe la presencia de un campo magnético se creará
una señal en alto.

Conexión Arduino:

Código Arduino:

int A0_Sensor = A0; 
int D0_Sensor = 3; 
  
void setup ()
{

  pinMode (A0_Sensor, INPUT);

  pinMode (D0_Sensor, INPUT);

       

  Serial.begin (9600); 

}


void loop ()

{

  float Analog;

  int Digital;


  Analog = analogRead (A0_Sensor) * (5.0 / 1023.0); 

  Digital = digitalRead (D0_Sensor);

 

  Serial.print ("Analog voltage value:"); Serial.print (Analog, 4);  Serial.print ("V, ");

  Serial.print ("Extreme value:");

  

  if(Digital==1)

  {

      Serial.println (" reached");

  }

  else

  {

      Serial.println (" not reached yet");

  }

  Serial.println ("----------------------------------------------------------------");

  delay (200);

}

Conexión Raspberry Pi:

Código Raspberry Pi:

from Adafruit_ADS1x15 import ADS1x15
from time import sleep

import math, signal, sys, os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

delayTime = 0.5

ADS1115 = 0x01  # 16-bit

gain = 4096

sps = 64

adc_channel_0 = 0
adc_channel_1 = 1
adc_channel_2 = 2
adc_channel_3 = 3

adc = ADS1x15(ic=ADS1115)

Digital_PIN = 24
GPIO.setup(Digital_PIN, GPIO.IN, pull_up_down = GPIO.PUD_OFF)
  
try:
        while True:
                analog = adc.readADCSingleEnded(adc_channel_0, gain, sps)
  
                if GPIO.input(Digital_PIN) == False:
                        print ("Analog voltage value:", analog,"mV, ","extreme value: not reached")
                else:
                        print( "Analog voltage value:", analog, "mV, ", "extreme value: reached")
                print ("---------------------------------------")
  
                sleep(delayTime)
  
except KeyboardInterrupt:
        GPIO.cleanup()

Para correr el programa abrimos terminal y tecleamos:

  • sudo python ky-024.py

KY-025: Módulo interruptor magnético reed

Descripción:

Interruptor magnético normalmente abierto (NO), que cierra su contacto (NC) al detectar un campo magnético cercano.

Conexión Arduino:

Código Arduino:

int Analog0 = A0; 
int Digital0 = 3;
  
void setup ()
{
  pinMode (Analog0, INPUT);
  pinMode (Digital0, INPUT);
       
  Serial.begin (9600);
}

void loop ()
{
  float Analog;
  int Digital;

  Analog = analogRead (Analog0) * (5.0 / 1023.0); 
  Digital = digitalRead (Digital0);
  
  Serial.print ("Analog voltage value:"); Serial.print (Analog, 4);  Serial.print ("V, ");
  Serial.print ("Extreme value:");
  
  if(Digital==1)
  {
      Serial.println (" reached");
  }
  else
  {
      Serial.println (" not reached yet");
  }
  Serial.println ("----------------------------------------------------------------");
  delay (200);
}

Conexión Raspberry Pi:

Código Raspberry Pi:

from Adafruit_ADS1x15 import ADS1x15
from time import sleep

import math, signal, sys, os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

delayTime = 0.5

ADS1115 = 0x01

gain = 4096

sps = 64

adc_channel_0 = 0
adc_channel_1 = 1
adc_channel_2 = 2
adc_channel_3 = 3

adc = ADS1x15(ic=ADS1115)

Digital_PIN = 24
GPIO.setup(Digital_PIN, GPIO.IN, pull_up_down = GPIO.PUD_OFF)
    
try:
        while True:
                analog = adc.readADCSingleEnded(adc_channel_0, gain, sps)
  
                if GPIO.input(Digital_PIN) == False:
                        print ("Analog voltage value:", analog,"mV, ","extreme value: not reached")
                else:
                        print( "Analog voltage value:", analog, "mV, ", "extreme value: reached")
                print ("---------------------------------------")
  
                sleep(delayTime)
  
except KeyboardInterrupt:
        GPIO.cleanup()

Para correr el programa abrimos terminal y tecleamos:

  • sudo python ky-025.py

Gracias por leer Ditecno Makers!!!

Lee la primer parte áca.

La segunda parte por áca.

La tercera parte en éste lugar.

La cuarta parte en éste otro lugar.

Podes ver más publicaciones de la comunidad Maker aquí

views
48

ElectroMercado

0 Comentarios

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