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:
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
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.