Lima costo S/8, tiempo de entrega entre 1 a 2 días hábiles 


Provincia según destino
Cotizar precio de envío
Tiempos de entrega




Av. General Garzón 1182 - 
Jesús María

Lun - Vie:  9:30am - 6:00pm
Sábados:  9:30am - 2:00pm

¿Como hago un pedido?

Shalom: Pago a destino, tiempo de entrega sujeto a Shalom





Módulos

  •  Arduinos
  • Sensores
  • Expansión
  • Comunicación
  • Adaptadores
  • Radiofrecuencia
  • Uso General

Equipos

  •  Osciloscopios
  • Generadores
  • Multímetros
  • Fuentes
  • Medidores
  • Estaciones
  • Ambientales

 Integrado

  •  74 LS & HC
  • Memorias
  • Analógicos
  • Zocalos
  • Reguladores
  • Optos
  • mCU

 Luces

  •  Leds
  • RGB
  • Luxeon
  • Indicadores
  • Superficiales
  • lamparas
  • Intermitentes

1

1. Conexiones físicas

    Realiza la conexión del módulo DHT22 al Arduino mediante los cables jumpers de la siguiente manera:

    AM2302

    Arduino

    V+

    5V

    Out (Pin de Datos)

    Pin Digital 2

    V-

     GND


2 | 3

2. Código
    
    #include <LiquidCrystal.h>
    
    // Configuración de pines para el LCD Keypad Shield oficial
    LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
    
    void setup() {
      lcd.begin(16, 2);
      lcd.setCursor(0, 0);
      lcd.print("LCD Shield Ok!");
      delay(1500);
    }
    
    void loop() {
      int valorAnalogico = analogRead(A0);
    
      lcd.setCursor(0, 0);
      lcd.print("Boton Presionado:");
      lcd.setCursor(0, 1);
      lcd.print("                ");
      lcd.setCursor(0, 1);
    
      if (valorAnalogico < 60) {
        lcd.print("DERECHA ");
      }
      else if (valorAnalogico < 200) {
        lcd.print("ARRIBA  ");
      }
      else if (valorAnalogico < 400) {
        lcd.print("ABAJO   ");
      }
      else if (valorAnalogico < 600) {
        lcd.print("IZQUIERDA");
      }
      else if (valorAnalogico < 800) {
        lcd.print("SELECT  ");
      }
      else {
        lcd.print("NINGUNO ");
      }
      delay(200);
    }
    
    1. #include "DHT.h"

      #define DHTPIN 2     // Pin digital conectado al sensor DHT22
      #define DHTTYPE DHT22   // Definir el tipo de sensor DHT
      DHT dht(DHTPIN, DHTTYPE);
      void setup() {
        Serial.begin(9600);
        dht.begin();
      }
      void loop() {
        delay(2000);  // Esperar 2 segundos entre lecturas
        float humedad = dht.readHumidity();
        float temperaturaC = dht.readTemperature();
        float temperaturaF = dht.readTemperature(true);

        if (isnan(humedad) || isnan(temperaturaC) || isnan(temperaturaF)) {
          Serial.println("¡Error al leer del sensor DHT!");
          return;
        }
        Serial.print("Humedad: ");
        Serial.print(humedad);
        Serial.print(" %\t");
        Serial.print("Temperatura: ");
        Serial.print(temperaturaC);
        Serial.print(" °C ");
        Serial.print(temperaturaF);
        Serial.println(" °F");
      }
3. Resultado

Este código lee la temperatura y la humedad del sensor y las muestra en el monitor serial.

Se puede apreciar como los valores aumentan al tocar el sensor con la mano.



Asegúrate de tener instalada la librería DHT.h. Puedes instalarla desde el Administrador de Librerías en el IDE de Arduino.    Descargar

Sketch->Incluir biblioteca->Añadir biblioteca ZIP....     

​

Compacto y confiable​

El Arduino Nano V3.0 con CH340 es una pequeña placa, completa y amigable. Fue diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares y trabajar montada en un protoboard para mejorar el prototipado de los circuitos en espacios reducidos. Esta tarjeta tiene una funcionalidad similar al Arduino Duemilanove pero en un tamaño mucho más pequeño y configuración diferente.

firmware_mcp3421.ino
#include 

#define MCP3421_ADDR 0x68

// Parámetros del Shunt
const float SHUNT_MAX_AMPS = 80.0;
const float SHUNT_MAX_MV = 60.0;
const float PGA_GAIN = 8.0;

// Configuración del Filtro
const int numLecturas = 15;
float lecturas[numLecturas];
int indiceLectura = 0;
float totalCorriente = 0;
float offsetCorriente = 0.0; // Aquí guardaremos el error de cero

void setup() {
  Wire.begin();
  Serial.begin(9600);
  
  // 1. Configurar MCP3421: 16 bits, Ganancia 8x
  Wire.beginTransmission(MCP3421_ADDR);
  Wire.write(0x1B); 
  Wire.endTransmission();
  
  delay(500); // Esperar a que el ADC se estabilice

  // 2. Calibración de Cero (Auto-Zero)
  Serial.println("Calibrando cero... Asegúrese de que no haya carga.");
  float sumaInicial = 0;
  int muestrasCalibracion = 20;
  
  for (int i = 0; i < muestrasCalibracion; i++) {
    sumaInicial += leerAmperiosDirecto();
    delay(70); // Tiempo entre muestras para el ADC de 16 bits
  }
  offsetCorriente = sumaInicial / muestrasCalibracion;
  
  Serial.print("Calibración completada. Offset detectado: ");
  Serial.print(offsetCorriente, 4);
  Serial.println(" A");

  // Inicializar arreglo de promedio
  for (int i = 0; i < numLecturas; i++) lecturas[i] = 0;
}

void loop() {
  float corrienteActual = leerAmperiosDirecto() - offsetCorriente;

  // Filtro de Promedio Móvil
  totalCorriente = totalCorriente - lecturas[indiceLectura];
  lecturas[indiceLectura] = corrienteActual;
  totalCorriente = totalCorriente + lecturas[indiceLectura];
  indiceLectura++;

  if (indiceLectura >= numLecturas) indiceLectura = 0;

  float promedioFinal = totalCorriente / numLecturas;

  // Cero forzado para eliminar ruido mínimo
  if (promedioFinal < 0.005 && promedioFinal > -0.005) promedioFinal = 0.00;

  Serial.print("Corriente: ");
  Serial.print(promedioFinal, 3);
  Serial.println(" A");

  delay(50);
}

// Función auxiliar para leer el ADC
float leerAmperiosDirecto() {
  Wire.requestFrom(MCP3421_ADDR, 3);
  if (Wire.available() >= 3) {
    int16_t result = (Wire.read() << 8) | Wire.read();
    Wire.read(); // Descartar config
    
    float vAtAdc = (float)result * (2048.0 / 32768.0);
    float vAtShunt = vAtAdc / PGA_GAIN;
    return (vAtShunt * SHUNT_MAX_AMPS) / SHUNT_MAX_MV;
  }
  return 0;
}


-- Ω
--
4 Bandas
5 Bandas
6 Bandas
Selecciona Color

Vendidos Recientemente

Su fragmento dinámico se mostrará aquí... Este mensaje se muestra porque no proporcionó tanto un filtro como una plantilla para usar.