This is an old revision of the document!
LCD1602, or 1605 character-type liquid crystal display, is a kind of dot matrix module to show letters, numbers, and characters and so on. It's composed of 5×7 or 5×11 dot matrix positions; each position can display one character. There's a dot pitch between two characters and a space between lines, thus separating characters and lines. The model 1605 means it displays 2 lines of 16 characters. Generally, LCD1605 has parallel ports, that is, it would control several pins at the same time. LCD1605 can be categorized into eight-port and four-port connections. If the eight-port connection is used, then all the digital ports of the SunFounder Uno board are almost completely occupied. If you want to connect more sensors, there will be no ports available. Therefore, the four-port connection is used here for better application.
i was able to use this display screen to show the measurement of the prox senser
This project incorporates the LED bar graph to display distance feedback from the ultrasonic sensor. The closer that the object is to the sensor, the less LED lights will be on, the further it is the more LED lights will be on.
The Ultrasonic sensor emits ultrasonic pulses that bounces off an object and receives the reverberation to sense how far and object is from the sensor.
The LED bar graph is comprised of 10 individual LED lights
Components Needed;
- Breadboard
- 14 jumper wires
- 10 220ohm resistors
- 3 1kohm resistors
- Ultrasonic Sensor
- LED Bar Graph
Using the code provided by freenove contained in chapter 24 (Ultrasonic Ranging) of the tutorial file, add the wiringPi pins for the LEDs.
#define LED1 0 // Defining wPi pins for LEDs in bar graph #define LED2 1 #define LED3 2 #define LED4 3 #define LED5 4 #define LED6 5 #define LED7 6 #define LED8 28 #define LED9 29 #define LEDA 10
I chose to use the define command as I want to have the ability to command each LED independently rather than use an array. In order to use these LED's we have to set those pins to outputs.
pinMode(LED1, OUTPUT);
Make sure you repeat this for all 10 LED wPi pins
Since we are using the declared variable of distance for the numerical distance and the max distance is 220, I will set up a for loop
for(distance = 0; distance < 220;)
This will ensure the code will continue to loop as long as we are within those parameters
Next, we have to use if/else statements using the variable distance and setting each additional LED to come on when we increase the distance in increments of 22cm.
if (distance > 0) // 1 led will come on if distance is greater than 0cm { digitalWrite(LED1, LOW); } else { digitalWrite(LED1, HIGH); } if (distance > 22) // 2 LEDs will come on if distance exceeds 22cm { digitalWrite(LED2, LOW); } else { digitalWrite(LED2, HIGH); }
Note, I am using the GPIO on the anode side of the LED, so commanding the LED low means that it is being commanded on. This must be repeated for all 10 LEDs. Notice that we are are using open ended greater than statements so that way the LEDs will increment up the bar graph and give us a nice visual indicator of the distance from the ultrasonic sensor.
At the end of the for statement, we include a printf function to display the input of the ultrasonic sensor and also a delay to update the input every 500ms.
In this project, I used three LEDs (red, yellow and green), a proximity sensor, and a lcd. Using the proximity sensor changes the color of the LEDs and changes the distance of the lcd.
An LED light is an electronic device that emits light when an electric current flows through it. So, an LED converts electrical energy into a light source. LED lights can also be used as an ON/OFF switch for a specific duration of code.
A proximity sensor is a device that can detect or sense the approach or presence of nearby objects without touching it. These sensors also convert the information that is received from the approach or presence of the objects into an electrical signal.
Wiring the LEDs and the proximity sensor.
Parts Needed: Arduino Uno, LED x3, Breadboard, Ultrasonic Distance Sensor - HC-SR04, Wires.
A Liquid Crystal Display (LCD) is an electronic device, which is frequently used in many applications for displaying information in a text or image format. An LCD is used for displaying the alphanumeric character on its screen. Alphanumeric characters are the numbers 0-9 and letters A-Z (both uppercase and lowercase). The LCD display is consists of 8-data lines and 3-control lines which are used for interfacing the LCD display with 8051 microcontroller.
Wiring the LCD
Parts Needed: Arduino Uno, Breadboard, 4 wires, the LCD.
As an object moves in front of the proximity sensor the LEDs light up and the LCD changes. If an object is very close to the proximity sensor then the red LED lights up and the LCD calculates the distance. If the object is halfway to the proximity sensor then the yellow LED lights up and the LCD calculates the distance. If an object is very faraway from the proximity sensor then the green LED lights up and the LCD calculates the distance.
The LCD recorded the distance as the object became closer or moved away.
Within this project I used a Joystick and 8 by 8 LED board. Using the Joystick it lights up a singular LED on the board and can be controlled by moving the joystick around.
A Joystick is a kind of input sensor used with your fingers. You should be familiar with this concept already as they are widely used in gamepads and remote controls. It can receive input on two axes (Y and or X) at the same time (usually used to control direction on a two dimensional plane). And it also has a third direction capability by pressing down (Z axis/direction).
Wiring the joystick
Parts Needed: Raspberry Pi, Ribbon cable, Breadboard, Joysick, 10k Resistor, ADC module, Wires
An LED Matrix is a rectangular display module that consists of a uniform grid of LEDs. The following is an 8×8 monochrome (one color) LED Matrix containing 64 LEDs (8 rows by 8 columns).
Wiring the 8 by 8 matrix
Parts Needed: Raspberry Pi, Ribbon cable, Breadboard, 8 220 Resistors, 8by8 LED Matrix, Wires, 2 74HC595
The Joystick prints out x and y values (as of right now z axis does not do anything I will improve upon it in fso2). The code records the values then, the code determines whether the values are high or low enough to move the LED on the Matrix (the coordinates show which LED is lit up).
val_X: 128 , val_Y: 127 , val_Z: 1 [0, 0] val_X: 128 , val_Y: 127 , val_Z: 1 [0, 0] val_X: 128 , val_Y: 127 , val_Z: 1 [0, 0] val_X: 0 , val_Y: 254 , val_Z: 1 [1, 1] val_X: 0 , val_Y: 254 , val_Z: 1 [1, 2] val_X: 0 , val_Y: 254 , val_Z: 1 [1, 3] val_X: 0 , val_Y: 254 , val_Z: 1 [1, 4] val_X: 253 , val_Y: 0 , val_Z: 1 [2, 3] val_X: 253 , val_Y: 0 , val_Z: 1 [4, 2] val_X: 128 , val_Y: 127 , val_Z: 1 [4, 2] val_X: 254 , val_Y: 254 , val_Z: 1 [8, 3] val_X: 254 , val_Y: 254 , val_Z: 1 [16, 4] val_X: 0 , val_Y: 127 , val_Z: 1 [8, 4] val_X: 0 , val_Y: 127 , val_Z: 1