
рдирдпрд╛ рд╕рд╛рд▓ рдореБрдмрд╛рд░рдХ рд╣реЛ!
рдкрджреЛрдВ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд:
"рдЖрддрд┐рд╢рдмрд╛рдЬрд╝реА рд▓рд┐рдЦреЗ рдмрд┐рдирд╛ рдПрдХ рднрджреНрджреЗ рддрд░реАрдХреЗ рд╕реЗ рдмрдзрд╛рдИ" рдФрд░
"рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдмрдирд╛рдирд╛" рдореИрдВрдиреЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреА рдорджрдж рд╕реЗ HD44780 рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕реНрдХреНрд░реАрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
Bcm2835 рдкреБрд╕реНрддрдХрд╛рд▓рдп
рд╕реНрдХреНрд░реАрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп LPT рдкреЛрд░реНрдЯ, рдбреЗрдореЛ рдмреЛрд░реНрдб рдФрд░ рдЕрдиреНрдп рдардВрдбреА рдЪреАрдЬреЛрдВ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдХреНрд░реАрди рдХреЗ рджрд╛рд╣рд┐рдиреЗ рдкреИрд░реЛрдВ рдХреЛ рдЦреАрдВрдЪрдирд╛ рд╣реИред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдмреЛрд░реНрдб рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрд▓рдЧрд╛рд╡ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ RPI рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ (GPIO) рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬрд┐рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЗ рд╕реАрдзреЗ рд╕реНрдЯреАрдпрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ
bcm2835 рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред
рд╕реНрдХреНрд░реАрди рдХрдиреЗрдХреНрд╢рди

рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рджреВрд╕рд░реЗ рд╕рдВрд╢реЛрдзрди рдХреЗ рд░рд╕рднрд░реА рд╣реИрдВ рдФрд░ рдХрдиреЗрдХреНрдЯрд░ рдХрд╛ рдкрд┐рдирдЖрдЙрдЯ рдкрд╣рд▓реЗ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред
рдЖрдк рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рдкрд┐рдирдЖрдЙрдЯ рдХреЛ рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рдмрдВрдзрди рдХрд╛рд░реНрдпрдХреНрд░рдо
рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреА рд░рд╛рдп рдореЗрдВ рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦрд╛ред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрд▓реНрдХрд┐ рдХрдЪреНрдЪрд╛ рдФрд░ рдЕрдзреВрд░рд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдлрд╝рд╛рдЗрд▓ HD44780.h
#define HD44780_DB4 RPI_V2_GPIO_P1_11 #define HD44780_DB5 RPI_V2_GPIO_P1_12 #define HD44780_DB6 RPI_V2_GPIO_P1_13 #define HD44780_DB7 RPI_V2_GPIO_P1_15 #define HD44780_RS RPI_V2_GPIO_P1_03 #define HD44780_RW RPI_V2_GPIO_P1_05 #define HD44780_E RPI_V2_GPIO_P1_07
рдпрд╣рд╛рдВ рдЖрдкрдХреЛ GPIO рдФрд░ LCD рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЗ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ рдКрдкрд░ рд╕реЗ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рддреЛ, рдЖрдкрдХреЛ lcd.c рдареАрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
#define MAX_DISP_ROWS 2 // The HD44780 supports up to 4 rows #define MAX_DISP_COLS 16 // The HD44780 supports up to 40 columns
рдЖрдкрдХреА рд╕реНрдХреНрд░реАрди рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдорд╣рддреНрд╡рдкреВрд░реНрдг: рд╕реНрдХреНрд░реАрди 5 рд╡реЛрд▓реНрдЯ рдХреЗ рд╡реЛрд▓реНрдЯреЗрдЬ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддреА рд╣реИ, рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА 3.3V рдХреЗ рддрд╛рд░реНрдХрд┐рдХ рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ, рд╕реНрдХреНрд░реАрди рдЗрди рд╕реНрддрд░реЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд░рд╕рднрд░реА, рдЕрдЧрд░ рд╕реНрдХреНрд░реАрди рдЗрд╕реЗ рдХреБрдЫ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреА рд╣реИ, рддреЛ рдЗрд╕реЗ рдЭреЗрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ "GPIO рд╡реЛрд▓реНрдЯреЗрдЬ рдХрд╛ рд╕реНрддрд░ 3.3 V рдФрд░ рд╣реИрдВ 5 рд╡реА рд╕рд╣рдирд╢реАрд▓ рдирд╣реАрдВред рдпрд╣рд╛рдВ рд╕реЗ рдмреЛрд░реНрдб рдкрд░ рдХреЛрдИ "рдУрд╡рд░-рд╡реЛрд▓реНрдЯреЗрдЬ рдкреНрд░реЛрдЯреЗрдХреНрд╢рди" рдирд╣реАрдВ рд╣реИ ред рдЗрд╕рд▓рд┐рдП, рд╕реНрдХреНрд░реАрди рд╕реЗ рдХреБрдЫ рднреА рдкрдврд╝рдирд╛ рджреГрдврд╝рддрд╛ рд╕реЗ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рд╕рдордЭрджрд╛рд░реА рд╕реЗ рдХрд╛рдо рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╕реНрддрд░реАрдп рдХрдиреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рди рдХрд┐ рд╕реАрдзреЗ рдХрдиреЗрдХреНрд╢рди рдХреАредрдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛
рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рд╕реЗ рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ,
рдФрд░ рдпрд╣рд╛рдВ рд╕рднреА рдПрдХ рд╣реА рдирд┐рдпрдВрддреНрд░рдг рдЕрдиреБрдХреНрд░рдо рд╣реИрдВ рдЬреЛ рдореИрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐
dlinyj рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдЬрд┐рд╕рдореЗрдВ
рдорд╛рдЗрдХрд▓ рдореИрдХрд▓реЗрд▓рди рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред OpenSource рдирд┐рдпрдоред :)
рдЕрдиреБрдХреНрд░рдорддреЛ, рд╣рдорд╛рд░реА рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ:
- \ 033 = ESC рдЕрдиреБрдХреНрд░рдо рднреЗрдЬрдирд╛ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдб рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ
- [A = рдХрд░реНрд╕рд░ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдКрдкрд░ рд▓реЗ рдЬрд╛рдПрдВ
- [B = рдХрд░реНрд╕рд░ рдХреЛ рдПрдХ рд░реЗрдЦрд╛ рд╕реЗ рдиреАрдЪреЗ рд▓реЗ рдЬрд╛рдПрдБ
- [C = рдХрд░реНрд╕рд░ рдХреЛ рджрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рдПрдВ
- [D = рдХрд░реНрд╕рд░ рдХреЛ рдмрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рдПрдВ
- [H = рдХрд░реНрд╕рд░ рдХреЛ рдКрдкрд░реА рдмрд╛рдПрдБ рдХреЛрдиреЗ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдБ - рдШрд░ (рд╕реНрдерд┐рддрд┐ 0,0)
- [рдЬреЗ = рд╕рдм рдХреБрдЫ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ, рдХрд░реНрд╕рд░ рдШрд░ рд╡рд╛рдкрд╕ рди рдХрд░реЗрдВ!
- [K = рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ рдорд┐рдЯрд╛рддрд╛ рд╣реИ, рдХрд░реНрд╕рд░ рдХреЛ рдШрд░ рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ!
- [M = рдирдпрд╛ рдЪрд░рд┐рддреНрд░ рдорд╛рдирдЪрд┐рддреНрд░ (DZ - рд╕рдордЭрд╛рдПрдВ рдХреНрдпреЛрдВ!)
- [Y = рд╕реНрдерд┐рддрд┐ Y (рдиреАрдЪреЗ FAQ рджреЗрдЦреЗрдВ)
- [X = рд╕реНрдерд┐рддрд┐ X (рдиреАрдЪреЗ FAQ рджреЗрдЦреЗрдВ)
- [R = CGRAM рдореЗрдореЛрд░реА рдЪрдпрди
- [V = рд╕реНрдХреНрд░реЙрд▓ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛
- [W = рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдЕрдХреНрд╖рдо рд╣реИ
- [рдмреА = рдмреИрдХрд▓рд╛рдЗрдЯ рдЪрд╛рд▓реВ / рдмрдВрдж рд╣реИ (рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛)ред
рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдХрдорд╛рдВрдб \ 033 рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ!
- \ r = рдХреИрд░рд┐рдЬ рд░рд┐рдЯрд░реНрди (рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрди рдкрд░ рдХрд░реНрд╕рд░ рдХреЛ рд╕реНрдерд┐рддрд┐ 0 рдкрд░ рд▓реМрдЯрд╛рдПрдВ!)
- \ n = рдирдИ рдкрдВрдХреНрддрд┐
- \ t = рдЯреИрдм (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 3 рд╡рд░реНрдг)
рдПрдХрдорд╛рддреНрд░ рдкрд░рд┐рд╡рд░реНрддрди: рдЕрдиреБрдХреНрд░рдо рдЬреЛрдбрд╝рд╛ [рдореИрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реВрдВред
рдЬрдм рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рд╕реНрдХреНрд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рд╣рдо рд╕реНрдХреНрд░реАрди рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВред
root@raspberrypi:/home/pi/lcd
рд╣рдо рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
root@raspberrypi:/home/pi/lcd

рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ minuses рдореЗрдВ, рдЖрдк рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рддрд╣рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рд▓рд┐рдЦрдХрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдХрд░реНрдиреЗрд▓ рд╕реЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдЪреЛрд░реА рдХреИрд╕реЗ рдХрд░реЗрдВред
рд╕реНрд░реЛрдд рдХреЛрдб
рд╡рд┐рдзрд╛рдирд╕рднрд╛:
root@raspberrypi:/home/pi/lcd$ gcc -o lcd lcd.c HD44780.c -lrt -lbcm2835
рдЦреЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдореИрдВ zipjpeg рдХреЗ рд░реВрдк рдореЗрдВ рдлреИрд▓ рдЧрдпрд╛:

UPD:
рд╕реНрд░реЛрддUPD2:
рдЪрд╛рд▓рдХ , рдЙрдкрдХрд░рдг / рджреЗрд╡ / gpiolcd рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛, рдмрд╛рдХреА рд╕рдм
рдпрд╣рд╛рдБ рдЬреИрд╕рд╛
рд╣реИUPD3: рдЧрд┐рддреБрдм
рдирдпрд╛ рд╕рд╛рд▓ рдореБрдмрд╛рд░рдХ рд╣реЛ!