GPIO EoF-003: Difference between revisions
Jump to navigation
Jump to search
(→Shop) |
m (Yoyojacky moved page RPI-B+-GPIO-Triple(English) to GPIO EoF-003) |
(No difference)
|
Latest revision as of 18:57, 27 August 2021
Raspberry Pi GPIO Triple Expand Board
Description
The "raspberry Pi GPIO Triple Expand Board" used for Raspberry Pi can copy Raspberry Pi's GPIO pin to the number of three ,in this case ,you do not worry about that some GPIO pins been occupied by external sensor modules ,you have three times of Raspberry Pi's GPIO pins
Overview
Schematic
LCD module scale
RGB1602 pin description
pin number | chart | function |
---|---|---|
1 | Vss | GND |
2 | Vdd | Voltage supply |
3 | Vo | LCD contrast |
4 | RS | register select |
5 | R/W | read or write select |
6 | E | enable |
7 | DB0 | data pin 0 |
8 | DB1 | data pin 1 |
9 | DB2 | data pin 2 |
10 | DB3 | data pin 3 |
11 | DB4 | data pin 4 |
12 | DB5 | data pin 5 |
13 | DB6 | data pin 6 |
14 | DB7 | daata pin 7 |
15 | LEDA | LED backlight voltage supply |
16 | LEDR | red LED backlight control |
17 | LEDG | green LED backlight control |
18 | LEDB | blue LED backlight control |
Learn
- If it's the first time for you to use Raspberry Pi, please make sure the I2C interface is enabled. This page will show you how to enable the I2C interface. http://www.52pi.net/forum.php?mod=viewthread&tid=1363&highlight=rtc
- You also need to install wiringPi library. This page will show you how to install wiringPi. http://wiringpi.com/download-and-install/
- If you are done install the wiringPi and enabling I2C interface, type the following code in the console to build a .c file
sudo vim.tiny lcd1602.c
File:1602 tech1.png
- Copy and paste the following demo code into lcd1602.c
- Under the vim.tiny editor, type ":", then type "wq" and press "enter" to save the lcd1602.c file and exit editor
- Next you need to compile the code using gcc.
gcc lcd1602.c -lwiringPi /home/pi/wiringPi/devLib/lcd.o -o lcd1602
File:1602 tech5.png
- You should find an executable file named "lcd1602" if the last step was completed. Type the following code
sudo modprobe i2c-dev
to load the I2C interface
File:1602 tech6.png
File:1602 tech8.png
- Lastly, type
sudo ./lcd1602
, and the module will be displaying the demo text, as the following photo shows.
File:1602 tech9.png
File:Show2.JPG
- This is a gif showing the different backlight colors
Demo Code
#include <stdio.h> //include standard input output head file #include <wiringPi.h> //include wiringpi #include <mcp23017.h> //include mcp23017 control head file #include <lcd.h> //include LCD control head file #include <softPwm.h> //include PWM control head file int main() { long value=0; int rand_num; int value_blue; //the blue backlight brightness int value_red; //the red backlight brightness int value_green; //the green backlight brightness int display,i,count; wiringPiSetup(); //init wiringPi mcp23017Setup (100, 0x20); //init mcp23017 chip I2C address: 0x20,the first pin number: 100 printf ("Raspberry Pi - MCP23017 Test\n"); //print information for(i=0;i<16;i++) pinMode(100+i,OUTPUT); //set pin 100 - 115 as output digitalWrite(101,0); //set pin 101 low voltage display=lcdInit(2,16,4,100,102,103,104,105,106,0,0,0,0); //lcd init 2*16,4 bit control,use 100,101,102,103,104 pin as control pin lcdHome(display); //reset cursor lcdClear(display); //clear screen lcdPosition(display,0,0); //set display location (0,0) lcdPuts(display,"Hello World"); //print string "Hello World" lcdPosition(display,0,1); //set display location(0,1) lcdPuts(display,"www.52pi.net"); //print string "www.52pi.net" pinMode(0, OUTPUT); //set Raspberry pi pin 0 as output pinMode(2, OUTPUT); //set Raspberry Pi pin 2 as output pinMode(3, OUTPUT); //set Raspberry Pi pin 3 as output softPwmCreate (3, 50, 100); //set soft PWM pin 3 PWM scale (0-100) original 50 softPwmCreate (2, 50, 100); //set soft PWM pin 2 PWM scale (0-100) original 50 softPwmCreate (0, 50, 100); //set soft PWM pin 0 PWM scale (0-100) original 50 while(1) //always display { delay(200); //delay 200ms value_red=(value<100)?value:0; //0-100 red change value_green=(value>100&&value<200)?(value-100):0; //100-200 green change value_blue=(value>200)?(value-200):0; //200-300 blue change if(value>300) //>300 random colour { value_red=rand()%100; value_green=rand()%100; value_blue=rand()%100; } //rand_num=rand(); softPwmWrite (3,value_red); //soft PWM control red backlight softPwmWrite (2,value_green); //soft PWM control green backlight softPwmWrite (0,value_blue); //soft PWM control blue backlight value++; if(value>900) //if value >900 return { value=0; } lcdPosition(display,13,1); lcdPrintf(display,"%d",value); //print number value //value_blue=0; } }