<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.52pi.com/index.php?action=history&amp;feed=atom&amp;title=RPI-595-IO-Expand_Module%28English%29</id>
	<title>RPI-595-IO-Expand Module(English) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.52pi.com/index.php?action=history&amp;feed=atom&amp;title=RPI-595-IO-Expand_Module%28English%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.52pi.com/index.php?title=RPI-595-IO-Expand_Module(English)&amp;action=history"/>
	<updated>2026-10-16T12:49:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>https://wiki.52pi.com/index.php?title=RPI-595-IO-Expand_Module(English)&amp;diff=7172&amp;oldid=prev</id>
		<title>Yoyojacky: /* Learn */</title>
		<link rel="alternate" type="text/html" href="https://wiki.52pi.com/index.php?title=RPI-595-IO-Expand_Module(English)&amp;diff=7172&amp;oldid=prev"/>
		<updated>2019-11-27T09:47:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Learn&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
=RPI-595-IO-Expand Module=&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
The &amp;quot;RPI-595-IO-Expand Module&amp;quot; uses four 74HC595 chips to expand IO ports up to 32.In this case ,this module can solve the problem in Raspberry Pi like enlightening LED matrix,driving the lattice screen ,or in any situation ,that IO port insufficient &lt;br /&gt;
[[Image:595 01.jpg|center|600px]]&lt;br /&gt;
==Technical Details==&lt;br /&gt;
{| width=&amp;quot;998&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;center&amp;quot; scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 40%&amp;quot; | Type &lt;br /&gt;
! align=&amp;quot;center&amp;quot; scope=&amp;quot;col&amp;quot; | Value&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; scope=&amp;quot;row&amp;quot; | Name &lt;br /&gt;
| align=&amp;quot;center&amp;quot; | RPI-595-IO-Expand Module&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; scope=&amp;quot;row&amp;quot; | Working voltage&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |  2.4V-5V&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; scope=&amp;quot;row&amp;quot; | IO voltage &lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 3.3V &lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; scope=&amp;quot;row&amp;quot; | Number of IO Expanded &lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 32&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; scope=&amp;quot;row&amp;quot; | Communicate interface&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | SPI&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; scope=&amp;quot;row&amp;quot; | Maximum communicate speed&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 100MHZ&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;  scope=&amp;quot;row&amp;quot; | Input and Output&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 8-bit serial input and 8-bit serial or parallel output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Product Scale==&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:595 sch01.png|700px]]&lt;br /&gt;
&lt;br /&gt;
==schematic==&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:595 sch02.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==Learn==&lt;br /&gt;
how to use this 595-IO-Expand Module to enlighten our RGB-LED-Matrix Module  [[ RPI-RGB-LED-Matrix(English) | RPI-RGB-LED-Matrix]]?&lt;br /&gt;
*just mount the LED Matrix module on 595-IO-Expand module like following picture&lt;br /&gt;
*install wiringPi library you can refer from this link http://wiringpi.com/download-and-install/&lt;br /&gt;
*After installing wiringPi, type the following code in the console to build a .c file&lt;br /&gt;
&amp;lt;code&amp;gt;sudo vim.tiny RGB8x8.c&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:8x8_tech2.png]]&lt;br /&gt;
*Copy and paste the following [[#tech1|demo code]] into RGB8x8.c&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:8x8_tech1.png]]&lt;br /&gt;
*Under the vim.tiny editor, type &amp;quot;:&amp;quot;, then type &amp;quot;wq&amp;quot; and press &amp;quot;enter&amp;quot; to save the RGB8x8.c file and exit editor&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:8x8_tech4.png]]&lt;br /&gt;
*Complie it: &amp;lt;code&amp;gt;gcc RGB8x8.c -lwiringPi  -o RGB8x8&amp;lt;/code&amp;gt;  &lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:8x8_tech3.png]]&lt;br /&gt;
*Lastly, type &amp;lt;code&amp;gt;sudo ./RGB8x8 -g 0 1&amp;lt;/code&amp;gt;,to load the executable file ,and in the matrix board you will find the green LED on line 0,row 1 is turned on as the following photo shows.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:8x8_tech5.png]]&lt;br /&gt;
&lt;br /&gt;
==示例代码说明==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;OLEDType_SSD1306.h&amp;quot;  //include driver file&lt;br /&gt;
#include &amp;quot;OLED_GFX.h&amp;quot;          &lt;br /&gt;
#include &amp;quot;OLED_SSD1306.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
OLED_SSD1306 display;                                                              // instantiation  OLED_SSD1306&lt;br /&gt;
&lt;br /&gt;
const unsigned char rpi_2[128] = { /* 0X00,0X01,0X1A,0X00,0X20,0X00, */           //binary file of picture&lt;br /&gt;
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0XC1,0XF0,0X00,0X18,0X32,0X06,0X00,&lt;br /&gt;
0X10,0X0C,0X02,0X00,0X11,0X0C,0X02,0X00,0X10,0X4C,0X84,0X00,0X08,0X2D,0X04,0X00,&lt;br /&gt;
0X0C,0X1E,0X08,0X00,0X06,0X3F,0X10,0X00,0X03,0XE1,0XF0,0X00,0X04,0X40,0X18,0X00,&lt;br /&gt;
0X08,0XC0,0X88,0X00,0X09,0XFF,0XE4,0X00,0X0F,0X1C,0X34,0X00,0X1E,0X0C,0X1E,0X00,&lt;br /&gt;
0X24,0X0C,0X12,0X00,0X24,0X0C,0X01,0X00,0X24,0X0C,0X11,0X00,0X26,0X1E,0X19,0X00&lt;br /&gt;
0X2F,0XE1,0XFB,0X00,0X1B,0XC0,0XE6,0X00,0X10,0XC0,0XC6,0X00,0X10,0XC0,0X84,0X00,&lt;br /&gt;
0X08,0X40,0X84,0X00,0X08,0X73,0X0C,0X00,0X06,0X7F,0X98,0X00,0X01,0XC0,0XE0,0X00,&lt;br /&gt;
0X00,0XC0,0XC0,0X00,0X00,0X33,0X00,0X00,0X00,0X0C,0X00,0X00,0X00,0X00,0X00,0X00,&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
unsigned char rpi_3[128] = { /* 0X00,0X01,0X1A,0X00,0X20,0X00, */               //binary file of picture&lt;br /&gt;
0XFF,0XFF,0XFF,0XC0,0XFF,0XFF,0XFF,0XC0,0XF8,0X3E,0X0F,0XC0,0XE7,0XCD,0XF9,0XC0,&lt;br /&gt;
0XEF,0XFB,0XFD,0XC0,0XEE,0XF3,0XFD,0XC0,0XEF,0XB3,0X7B,0XC0,0XF7,0XD2,0XFB,0XC0,&lt;br /&gt;
0XFF,0XE1,0XFF,0XC0,0XFD,0XC0,0XEF,0XC0,0XFC,0X1E,0X0F,0XC0,0XFB,0XBF,0XE7,0XC0,&lt;br /&gt;
0XF7,0X3F,0X77,0XC0,0XF6,0X00,0X1B,0XC0,0XF0,0XE3,0XCB,0XC0,0XE1,0XF3,0XE1,0XC0,&lt;br /&gt;
0XDB,0XF7,0XFD,0XC0,0XDB,0XF3,0XFE,0XC0,0XDB,0XF3,0XEE,0XC0,0XD9,0XE1,0XE6,0XC0,&lt;br /&gt;
0XD0,0X1E,0X04,0XC0,0XE4,0X3F,0X19,0XC0,0XEF,0X3F,0X39,0XC0,0XFF,0XBF,0X7B,0XC0,&lt;br /&gt;
0XF7,0XBF,0X7B,0XC0,0XF7,0X8C,0XF3,0XC0,0XF9,0X80,0X67,0XC0,0XFE,0X3F,0X1F,0XC0,&lt;br /&gt;
0XFF,0X3F,0X3F,0XC0,0XFF,0XDC,0XFF,0XC0,0XFF,0XF3,0XFF,0XC0,0XFF,0XFF,0XFF,0XC0,&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
	if ( !display.init(OLED_I2C_RESET,OLED_OLED_I2C_128x32) )       //initiate the I2C interface screen ,otherwise ,exit&lt;br /&gt;
		exit(EXIT_FAILURE);                                     &lt;br /&gt;
	display.begin();                                                //start display&lt;br /&gt;
	display.clearDisplay();                                         //clear screen&lt;br /&gt;
	display.drawBitmap(0,0,rpi_2,32,32,1);                          //picture display location X:0,Y:0,picture file :RPI_2,picture high:32,picture with:32,font:black&lt;br /&gt;
	display.drawBitmap(96,0,rpi_2,32,32,1);                         //picture display location X:96,Y:0,picture file :RPI_2,picture high:32,picture with:32,font:black&lt;br /&gt;
	display.drawRect(0,0,128,32,0);                                 //display white          &lt;br /&gt;
	display.setTextSize(1);                                         //set font size one&lt;br /&gt;
	display.setTextColor(WHITE);                                    //set font color white&lt;br /&gt;
	display.setCursor(29,0);                                        //set character display location X:29,:Y:0&lt;br /&gt;
	display.print(&amp;quot;Hello World&amp;quot;);                                   //set display content Hello World&lt;br /&gt;
	display.setCursor(29,16);                                       //set ddisplay location X:29,Y:16&lt;br /&gt;
	display.print(&amp;quot;www.52pi.cn&amp;quot;);                                   //set display ccontent www.52pi.cn&lt;br /&gt;
	display.display();                                              //start display&lt;br /&gt;
        usleep(10000);                                                  //delay&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==购买链接==&lt;br /&gt;
==附件==&lt;br /&gt;
&amp;lt;div id=&amp;quot;tech1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;[[1306-0.91-CODE.zip]]&lt;br /&gt;
&amp;lt;br&amp;gt;[[SSD1306-Revision 1.0.pdf]]&lt;br /&gt;
[[:Category:名称]]&lt;br /&gt;
&amp;lt;br /&amp;gt;如对此页的规则或教程有意见者，可到[[Minecraft_Wiki_talk:wiki编辑手册|此网页]]或是在[[User talk:Powup333|管理员Powup333的讨论页]]留言。&lt;/div&gt;</summary>
		<author><name>Yoyojacky</name></author>
	</entry>
</feed>