(Arduino) Contar Números Binarios con OPEN SMART Rich Shield

Hola les traigo una nueva aventura con OPEN SMART Rich Shield, esta shield tiene utilidades bastante buenas, al contar con múltiples luces LEDs, una pantalla para mostrar números enteros, entre otras utilidades, como mostrar temperatura, hace que esta Shield con un Arduino sea la mejor inversión que puedas hacer en mucho tiempo.

Hoy voy a hacer, como bien aparece en el título, un contador en binario, va a contar hasta el número 15, es un ejercicio muy sencillo, básicamente he reutilizado parte de un código de una página web llamada eenube.com, lo he adaptado para el dispositivo Arduino con OSRS, y éste ha sido el resultado:

Tabla de contenidos

Materiales:

Rich Shield de OPEN SMART AliExpress.com Product – Starter kit Rich Shield with Infrared Receiver LED Buzzer Button DHT11 Light Sensor Temperature Sensor Module for Arduino UNO R3
Arduino UNO AliExpress.com Product – high quality One set UNO R3 (CH340G) MEGA328P for Arduino UNO R3 (NO USB CABLE)

Código:

El código adaptado os lo dejo por aquí abajo, es un código bastante intuitivo, la verdad, espero que os guste y nada, esto ha sido todo con mi aventura usando este dispositivo.

#include <Wire.h>
#include <stdio.h>
#include «RichShieldLightSensor.h»
#include «RichShieldTM1637.h»
#define CHAR_BITS 8

  
#define CLK 10//CLK of the TM1637 IC connect to D10 of OPEN-SMART UNO R3
#define DIO 11//DIO of the TM1637 IC connect to D11 of OPEN-SMART UNO R3
TM1637 disp(CLK,DIO);

#define LIGHTSENSOR_PIN A2//SIG pin of Rocker Switch module connect to A0 of IO Shield, that is pin A2 of OPEN-SMART UNO R3
LightSensor lightsensor(LIGHTSENSOR_PIN);

int i=0;
void setup() {
  Serial.begin(9600); //Set baud rate of serial port to be 9600bps, burn the program and open the serial monitor 
                     //on the upper right corner of Arduino IDE to check the sensor data.
  disp.init();//The initialization of the display
  
}

void print_binint(int num)
{
 disp.init();
    int sup = CHAR_BITS*sizeof(int);
    String str=»»;
    while(sup >= 0)
    {
        if(num & (((long int)1) << sup))
            str=str+»1″;
        else
            str=str+»0″;
        sup–;
    }
    int strint=str.toInt();
    disp.display(strint);
}
void loop() {
  
  
  for(i=0;i<15;i++){
  print_binint(i);//Illuminance
  
  
  delay(1000);  
  }
}

Un saludo y hasta la próxima, podéis dejarme comentarios de este Shield o si os gustaría que hiciera algún proyecto en particular con este shield.

FUENTES:

http://eenube.com/index.php/ldp/c/96-mostrar-un-numero-entero-en-binario-en-c

Deja un comentario

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.