——
#DonLucElectronics #DonLuc #Environment #MQ #PIR #RHT03 #ArduinoUNO #Arduino #AdafruitPowerBoost #Project #Programming #Electronics #Microcontrollers #Consultant #VideoBlog
——
——
——
——
——
RGB LCD Shield 16×2 Character Negative Display
With this in mind, we wanted to make it easier for people to get these LCD into their projects so we devised a shield that lets you control a 16×2 Character LCD, up to 3 backlight pins AND 5 keypad pins using only the two I2C pins on the Arduino. The shield is designed for Arduinos Uno. It uses the I2C pins at Analog 4 and Analog 5.
At this time, the library and shield can control the RGB backlight of our character LCDs by turning each LED on or off. This means you can display the following colors: Red, Yellow, Green, Teal, Blue, Violet, White and all off. This shield is perfect for when you want to build a stand-alone project with its own user interface. The 4 directional buttons plus select button allows basic control without having to attach a bulky computer.
Adjusting Contrast
The shield uses a character LCD with an external contrast potentiometer. The first time you use it, adjust the potentiometer in the bottom right until you see the text clearly.
DL2110Mk02
1 x Arduino UNO – R3
1 x ProtoScrewShield
1 x RGB LCD Shield 16×2 Character Negative Display
1 x Adafruit PowerBoost 500 Shield
1 x Lithium Ion Battery – 3.7v 2000mAh
4 x Pololu Carrier for MQ Gas Sensors
1 x SparkFun Hydrogen Gas Sensor – MQ-8
1 x 4.7K Ohm
1 x Pololu Carbon Monoxide & Flammable Gas Sensor – MQ-9
1 x 22k Ohm
1 x SparkFun Carbon Monoxide Gas Sensor – MQ-7
1 x 10K Ohm
1 x SparkFun Alcohol Gas Sensor – MQ-3
1 x 220k Ohm
1 x Temperature and Humidity Sensor- RHT03
1 x PIR Motion Sensor (JST)
1 x SparkFun Solderable Half-Breadboard
1 x SparkFun Cerberus USB Cable
Arduino UNO – R3
RHT – Digital 5
PIR – Digital 7
MQ8 – Analog 0
MQ9 – Analog 1
MQ7 – Analog 2
MQ3 – Analog 3
SDA – Analog 4
SCL – Analog 5
VIN – +5V
GND – GND
DL2110Mk02p.ino
/*
***** Don Luc Electronics © *****
Software Version Information
Project #15: Environment – RGB LCD Shield 16x2 Character Display – Mk15
10-02
DL2110Mk02p.ino
1 x Arduino UNO - R3
1 x ProtoScrewShield
1 x RGB LCD Shield 16x2 Character Negative Display
1 x Adafruit PowerBoost 500 Shield
1 x Lithium Ion Battery - 3.7v 2000mAh
4 x Pololu Carrier for MQ Gas Sensors
1 x SparkFun Hydrogen Gas Sensor - MQ-8
1 x 4.7K Ohm
1 x Pololu Carbon Monoxide & Flammable Gas Sensor - MQ-9
1 x 22k Ohm
1 x SparkFun Carbon Monoxide Gas Sensor - MQ-7
1 x 10K Ohm
1 x SparkFun Alcohol Gas Sensor - MQ-3
1 x 220k Ohm
1 x Temperature and Humidity Sensor - RHT03
1 x PIR Motion Sensor (JST)
1 x SparkFun Solderable Half-Breadboard
1 x SparkFun Cerberus USB Cable
*/
// Include the Library Code
// EEPROM Library to Read and Write EEPROM with Unique ID for Unit
#include <EEPROM.h>
// RHT Temperature and Humidity Sensor
#include <SparkFun_RHT03.h>
// Adafruit RGB LCD Shield 16x2
#include <Adafruit_RGBLCDShield.h>
// RHT Temperature and Humidity Sensor
// RHT03 data pin Digital 5
const int RHT03_DATA_PIN = 5;
// This creates a RTH03 object, which we'll use to interact with the sensor
RHT03 rht;
float latestHumidity;
float latestTempC;
// Gas Sensors MQ
// Hydrogen Gas Sensor - MQ-8
int iMQ8 = A0;
int iMQ8Raw = 0;
int iMQ8ppm = 0;
// Two points are taken from the curve in datasheet.
// With these two points, a line is formed which is
// "approximately equivalent" to the original curve.
float H2Curve[3] = {2.3, 0.93,-1.44};
// Carbon Monoxide & Flammable Gas Sensor - MQ-9
int iMQ9 = A1;
int iMQ9Raw = 0;
int iMQ9ppm = 0;
// Carbon Monoxide Gas Sensor - MQ-7
int iMQ7 = A2;
int iMQ7Raw = 0;
int iMQ7ppm = 0;
// Alcohol Gas Sensor - MQ-3
int iMQ3 = A3;
int iMQ3Raw = 0;
int iMQ3ppm = 0;
// PIR Motion
// Motion detector
const int iMotion = 7;
// Proximity
int proximity = LOW;
String Det = "";
// Adafruit RGB LCD Shield
Adafruit_RGBLCDShield RGBLCDShield = Adafruit_RGBLCDShield();
// These #defines make it easy to set the backlight color
#define OFF 0x0
#define RED 0x1
#define YELLOW 0x3
#define GREEN 0x2
#define TEAL 0x6
#define BLUE 0x4
#define VIOLET 0x5
#define WHITE 0x7
// Momentary Button
int yy = 0;
uint8_t momentaryButton = 0;
// Software Version Information
String uid = "";
// Version
String sver = "15-15";
void loop()
{
// Adafruit RGB LCD Shield
// Clear
RGBLCDShield.clear();
// RHT Temperature and Humidity Sensor
isRHT03();
// Gas Sensors MQ
isGasSensor();
// isPIR Motion
isPIR();
// Adafruit RGB LCD Shield
// Display
isDisplay();
// Delay
// Turn the LED on HIGH is the voltage level
digitalWrite(LED_BUILTIN, HIGH);
// Wait for a 0.5 second
delay( 500 );
// Turn the LED off by making the voltage LOW
digitalWrite(LED_BUILTIN, LOW);
// Wait for a 0.5 second
delay( 500 );
}
getEEPROM.ino
// EEPROM
// isUID EEPROM Unique ID
void isUID()
{
// Is Unit ID
uid = "";
for (int x = 0; x < 5; x++)
{
uid = uid + char(EEPROM.read(x));
}
}
getGasSensorMQ.ino
// Gas Sensors MQ
// Gas Sensor
void isGasSensor() {
// Read in analog value from each gas sensors
// Hydrogen Gas Sensor - MQ-8
iMQ8Raw = analogRead( iMQ8 );
// Carbon Monoxide & Flammable Gas Sensor - MQ-9
iMQ9Raw = analogRead( iMQ9 );
// Carbon Monoxide Gas Sensor - MQ-7
iMQ7Raw = analogRead( iMQ7 );
// Alcohol Gas Sensor - MQ-3
iMQ3Raw = analogRead( iMQ3 );
// Caclulate the PPM of each gas sensors
// Hydrogen Gas Sensor - MQ-8
iMQ8ppm = isMQ8( iMQ8Raw );
// Carbon Monoxide & Flammable Gas Sensor - MQ-9
iMQ9ppm = isMQ9( iMQ9Raw );
// Carbon Monoxide Gas Sensor - MQ-7
iMQ7ppm = isMQ7( iMQ7Raw );
// Alcohol Gas Sensor - MQ-3
iMQ3ppm = isMQ3( iMQ3Raw );
}
// Hydrogen Gas Sensor - MQ-8 - PPM
int isMQ8(double rawValue) {
// RvRo
double RvRo = rawValue * (3.3 / 1023);
return (pow(4.7,( ((log(RvRo)-H2Curve[1])/H2Curve[2]) + H2Curve[0])));
}
// Carbon Monoxide & Flammable Gas Sensor - MQ-9
int isMQ9(double rawValue) {
double RvRo = rawValue * 3.3 / 4095;
double ppm = 3.027*exp(1.0698*( RvRo ));
return ppm;
}
// Carbon Monoxide Gas Sensor - MQ-7
int isMQ7(double rawValue) {
double RvRo = rawValue * 3.3 / 4095;
double ppm = 3.027*exp(1.0698*( RvRo ));
return ppm;
}
// Alcohol Gas Sensor - MQ-3
int isMQ3(double rawValue) {
double RvRo = rawValue * 3.3 / 4095;
double bac = RvRo * 0.21;
return bac;
}
getPIR.ino
// PIR Motion
// Setup PIR
void setupPIR() {
// Setup PIR Montion
pinMode(iMotion, INPUT_PULLUP);
}
// isPIR Motion
void isPIR() {
// Proximity
proximity = digitalRead(iMotion);
if (proximity == LOW)
{
// PIR Motion Sensor's LOW, Motion is detected
Det = "Motion Yes";
}
else
{
// PIR Motion Sensor's HIGH
Det = "No";
}
}
getRGBLCDShield.ino
// Adafruit RGB LCD Shield
// Setup RGB LCD Shield
void isSetupRGBLCDShield() {
// Adafruit RGB LCD Shield
// Set up the LCD's number of columns and rows:
RGBLCDShield.begin(16, 2);
// Set the cursor to column 0, line 0
RGBLCDShield.setBacklight(RED);
// Don luc
RGBLCDShield.setCursor(0,0);
RGBLCDShield.print("Don Luc");
// Set the cursor to column 0, line 1
RGBLCDShield.setCursor(0, 1);
// Electronics
RGBLCDShield.print("Electronics");
// Delay
delay(5000);
// Clear
RGBLCDShield.clear();
// Set the cursor to column 0, line 0
RGBLCDShield.setBacklight(TEAL);
// Version
RGBLCDShield.setCursor(0,0);
RGBLCDShield.print("Version: " + sver);
// Set the cursor to column 0, line 1
RGBLCDShield.setCursor(0, 1);
// Unit ID
RGBLCDShield.print("Unit ID: " + uid);
// Delay
delay(5000);
// Clear
RGBLCDShield.clear();
}
// isDisplay
void isDisplay() {
// Momentary Button
momentaryButton = RGBLCDShield.readButtons();
switch ( yy ) {
case 1:
// RHT Temperature and Humidity Sensor
// Set the cursor to column 0, line 0
RGBLCDShield.setCursor(0,0);
// Temperature C
RGBLCDShield.print( "Temp C: " );
RGBLCDShield.print( latestTempC );
// Set the cursor to column 0, line 1
RGBLCDShield.setCursor(0, 1);
// Humidity
RGBLCDShield.print( "Humidity: " );
RGBLCDShield.print( latestHumidity );
break;
case 2:
// PIR Motion Sensor
// Set the cursor to column 0, line 0
// PIR Motion Sensor
RGBLCDShield.setCursor(0,0);
RGBLCDShield.print( "PIR Motion" );
// Set the cursor to column 0, line 1
RGBLCDShield.setCursor(0, 1);
// Det
RGBLCDShield.print( Det );
break;
case 3:
// Gas Sensors 1
// Set the cursor to column 0, line 0
RGBLCDShield.setCursor(0,0);
// Hydrogen Gas Sensor - MQ-8
RGBLCDShield.print( "MQ-8: " );
RGBLCDShield.print( iMQ8ppm );
// Set the cursor to column 0, line 1
RGBLCDShield.setCursor(0, 1);
// Carbon Monoxide & Flammable Gas Sensor - MQ-9
RGBLCDShield.print( "MQ-9: " );
RGBLCDShield.print( iMQ9ppm );
break;
case 4:
// Gas Sensors 2
// Set the cursor to column 0, line 0
RGBLCDShield.setCursor(0,0);
// Carbon Monoxide Gas Sensor - MQ-7
RGBLCDShield.print( "MQ-7: " );
RGBLCDShield.print( iMQ7ppm );
// Set the cursor to column 0, line 1
RGBLCDShield.setCursor(0, 1);
// Alcohol Gas Sensor - MQ-3
RGBLCDShield.print( "MQ-3: " );
RGBLCDShield.print( iMQ3ppm );
break;
case 5:
// Don luc Electronics
// Set the cursor to column 0, line 0
// Don luc
RGBLCDShield.setCursor(0,0);
RGBLCDShield.print("Don Luc");
// Set the cursor to column 0, line 1
RGBLCDShield.setCursor(0, 1);
// Electronics
RGBLCDShield.print("Electronics");
break;
default:
// Don luc Electronics
yy = 5;
RGBLCDShield.setBacklight(RED);
// Set the cursor to column 0, line 0
// Don luc
RGBLCDShield.setCursor(0,0);
RGBLCDShield.print("Don Luc");
// Set the cursor to column 0, line 1
RGBLCDShield.setCursor(0, 1);
// Electronics
RGBLCDShield.print("Electronics");
}
if ( momentaryButton ) {
if ( momentaryButton & BUTTON_UP ) {
yy = 1;
// RHT Temperature and Humidity Sensor
RGBLCDShield.setBacklight(GREEN);
}
if ( momentaryButton & BUTTON_DOWN ) {
yy = 2;
// PIR Motion Sensor
RGBLCDShield.setBacklight(VIOLET);
}
if ( momentaryButton & BUTTON_LEFT ) {
yy = 3;
// Gas Sensors 1
RGBLCDShield.setBacklight(TEAL);
}
if ( momentaryButton & BUTTON_RIGHT ) {
yy = 4;
// Gas Sensors 2
RGBLCDShield.setBacklight(YELLOW);
}
if ( momentaryButton & BUTTON_SELECT ) {
yy = 5;
// Don luc Electronics
RGBLCDShield.setBacklight(RED);
}
}
}
getRHT.ino
// RHT Temperature and Humidity Sensor
// setup RHT Temperature and Humidity Sensor
void setupRTH03() {
// RHT Temperature and Humidity Sensor
// Call rht.begin() to initialize the sensor and our data pin
rht.begin(RHT03_DATA_PIN);
}
// RHT Temperature and Humidity Sensor
void isRHT03(){
// Call rht.update() to get new humidity and temperature values from the sensor.
int updateRet = rht.update();
// The humidity(), tempC(), and tempF() functions can be called -- after
// a successful update() -- to get the last humidity and temperature value
latestHumidity = rht.humidity();
latestTempC = rht.tempC();
}
setup.ino
// Setup
void setup()
{
// EEPROM Unique ID
isUID();
// RHT Temperature and Humidity Sensor
// Setup RTH03 Temperature and Humidity Sensor
setupRTH03();
// PIR Motion
// Setup PIR
setupPIR();
// Initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
// Adafruit RGB LCD Shield
isSetupRGBLCDShield();
}
——
People can contact us: https://www.donluc.com/?page_id=1927
Technology Experience
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
- IoT
- Robotics
- Camera and Video Capture Receiver Stationary, Wheel/Tank and Underwater Vehicle
- Unmanned Vehicles Terrestrial and Marine
- Research & Development (R & D)
- Desktop Applications (Windows, OSX, Linux, Multi-OS, Multi-Tier, etc…)
- Mobile Applications (Android, iOS, Blackberry, Windows Mobile, Windows CE, etc…)
- Web Applications (LAMP, Scripting, Java, ASP, ASP.NET, RoR, Wakanda, etc…)
- Social Media Programming & Integration (Facebook, Twitter, YouTube, Pinterest, etc…)
- Content Management Systems (WordPress, Drupal, Joomla, Moodle, etc…)
- Bulletin Boards (phpBB, SMF, Vanilla, jobberBase, etc…)
- eCommerce (WooCommerce, OSCommerce, ZenCart, PayPal Shopping Cart, etc…)
Instructor and E-Mentor
- PIC Microcontrollers
- Arduino
- Raspberry Pi
- Espressif
- Robotics
- DOS, Windows, OSX, Linux, iOS, Android, Multi-OS
- Linux-Apache-PHP-MySQL
Follow Us
J. Luc Paquin – Curriculum Vitae – 2021 English & Español
https://www.jlpconsultants.com/luc/
Web: https://www.donluc.com/
Web: https://www.jlpconsultants.com/
Web: https://www.donluc.com/DLE/
Web: https://www.donluc.com/DLHackster/
Web: https://www.hackster.io/neosteam-labs
Web: https://zoom.us/
Patreon: https://www.patreon.com/DonLucElectronics
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Don Luc



