рд▓реЗрдЬрд░ рдкреНрд░рд┐рдВрдЯрд░ рдХреЗ рдХреБрдЫ рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╛рд░рддреВрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП EEPROM рдореЗрдореЛрд░реА рдЪрд┐рдкреНрд╕ рдХреЛ рдХрд╛рд░рддреВрд╕ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рд╕реИрдорд╕рдВрдЧ MLT-D104X (700 рдкреГрд╖реНрда) рдпрд╛ MLT-D104S (1500 рдкреГрд╖реНрда) рдХреЛ рдкреНрд░рд┐рдВрдЯрд░ рдХреЗ рд▓рд┐рдП рдорд╛рдирддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рд╕реИрдорд╕рдВрдЧ ML-1665ред рдЗрди рдХрд╛рд░рддреВрд╕реЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред I2C рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ EEPROM рдЪрд┐рдк рдХрд╛рд░рддреВрд╕ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ ... рдХрд╛рд░рддреВрд╕ рдХрд╛рдлреА рдорд╣рдВрдЧреЗ рд╣реИрдВ (рд▓рдЧрднрдЧ $ 70), рдЗрд╕рд▓рд┐рдП рдХрд╛рд░рддреВрд╕ рдХреЛ рдПрдХ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рд╕реЗрд╡рд╛ рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬрд╣рд╛рдВ рд╡реЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рднрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреГрд╖реНрда рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рд░реАрд╕реЗрдЯ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рдореАрдЯрд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рдИрдВрдзрди рднрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдорд╣рдВрдЧрд╛ рд╣реИ! рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ рдХрд┐ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдЦреБрдж рдХреЛ рдХреИрд╕реЗ рд░реАрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдХреЗрд╡рд▓ рд░рд┐рдлрд┐рд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рд░рддреВрд╕ (рд▓рдЧрднрдЧ 10 рд░реБрдкрдпреЗ рдХреЗ рд▓рд┐рдП) рджрд┐рдпрд╛ рдЬрд╛рдПред
рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ:рдкреНрд░рд┐рдВрдЯрд░ рд╕реИрдорд╕рдВрдЧ ML-1665ред рдХрд╛рд░рддреВрд╕ рд╕реИрдорд╕рдВрдЧ MLT-D104Xред
рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ:рдкреЗрдЬ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕рдХреЗ рдХрд╛рдо рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред
рд╕рдорд╛рдзрд╛рди:рдЕрдЪрд╛рдирдХ, рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ рдХрд┐ рдЧреНрд░рдореНрдмреЛ рдкрд╛рдИ рд░реЛрдмреЛрдЯреЛрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдмреЛрд░реНрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ!
рдЬреИрд╕рд╛ рдХрд┐
рд╣рдорд╛рд░реЗ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ , рдЧреНрд░реИрдореНрдмреЛ рдкрд╛рдИ рдмреЛрд░реНрдб рдореЗрдВ I2C рд╕рд╣рд┐рдд рдХрдИ рдорд╛рдирдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдмреЛрд░реНрдб рд╕реНрд╡рдпрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ USB <-> I2C рдХрдирд╡рд░реНрдЯрд░ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдирд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рд╕рд░рд▓ рдерд╛ - рдПрдХ рдПрдореНрдмреЗрдбреЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд▓рдЧрднрдЧ рдПрдХ рдкреГрд╖реНрда рдХрд╛ рдкрд╛рдаред рдЗрд╕рдореЗрдВ рдкрд╛рдпрдерди GUI рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрд╛рд░рддреВрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬреЛ рдХреБрдЫ рднреА рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдХрд╛рд░рддреВрд╕ рдХреЛ I2C рдмрд╕ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдХрд╛рд░рддреВрд╕ рдкрд░ рд╕рдВрдкрд░реНрдХреЛрдВ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ ... рдпрд╣ рдмрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдпрджрд┐ рдЙрджреНрджреЗрд╢реНрдп рд╣реИ, рддрд╛рдХрд┐ рд▓реЛрдЧ рдЦреБрдж EEPROM рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВ!

рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрди рдЧрдИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ EEPROM рдЪрд┐рдк рдХреНрдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ Google рдореЗрдВ рдЕрдВрдХрди рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ)ред рдореБрдЭреЗ рд╕рднреА I2C рдкрддреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдерд╛ред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдЪрд┐рдк 25, 30 рдФрд░ 40 рдХреЗ рдкрддреЗ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддреА рд╣реИред рдкрддреЗ 40 рдкрд░, рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдореЗрдореЛрд░реА рдкреЗрдЬ рдирдВрдмрд░ рд╕реНрдерд┐рдд рд╣реИ, рдФрд░ 30 рдкрддреЗ рдкрд░ рдбреЗрдЯрд╛ рд╕реНрд╡рдпрдВ рдирд┐рдХрд▓рд╛ред рдкрд░реАрдХреНрд╖рдг рдкреГрд╖реНрда рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ 2 рдмрд╛рд░ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ рдХрд┐ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╕рдордп рдХреМрди рд╕реЗ рдмрд╛рдЗрдЯреНрд╕ рдмрджрд▓рддреЗ рд╣реИрдВред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдкреГрд╖реНрдареЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрд┐рд╕ рд░реВрдк рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: 4 рдмрд╛рдЗрдЯреНрд╕ рдкреНрд░рддрд┐ рдЖрдВрдЦ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВред рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЖрд▓рд╕реНрдп рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрднреА рднреА рдЕрднреА рднреА "рд▓рд╛рдЗрд╡" рдХрд╛рд░рддреВрд╕ рдХреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдмрдЪрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг 700 рдкреГрд╖реНрдареЛрдВ рдХреЗ рдкрд╛рд╕ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░, рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рд╕рд╣реЗрдЬреЗ рдЧрдП рдореВрд▓реНрдп рдкрд░ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░реЗрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд╛рд░рддреВрд╕ рдХреА рдЬрдЧрд╣ рдХреЗ рд▓рд┐рдП рджреЗрд░реА рд╣реЛ рд░рд╣реА рд╣реИ, рдЙрдореНрдореАрдж рд╣реИ, рдЕрд╕реАрдорд┐рдд рд╕рдордп!Grambo Pi рдмреЛрд░реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд░реЛрдд рдХреЛрдб#include <supply> new ioBuffer[32] read( i2cAddr, chipAddr, cnt ) { new wr[2] wr[0] = chipAddr // IO operation at I2C bus. setLed( 3 ) new res = i2cIo( i2cAddr, wr, 1, ioBuffer, cnt, 500 ) setLed( 0 ) // Operation result. setIo( 1, res ) new i for ( i=0; i<cnt; i++ ) setIo( i+2, ioBuffer[i] ) return res } write( i2cAddr, chipAddr, cnt ) { ioBuffer[0] = chipAddr new i for ( i=0; i<cnt; i++ ) ioBuffer[i+1] = io( i+4 ) // IO operation at I2C bus. setLed( 3 ) new res = i2cIo( i2cAddr, ioBuffer, cnt+1, ioBuffer, 0, 500 ) setLed( 0 ) return res } main() { new led = 0 // Reset command at the very beginning. setIo( 0, 0 ) setI2cEn( 1 ) for ( ;; ) { new i2cAddr new devAddr new cnt new res // Check if read operation? if ( io( 0 ) == 1 ) { i2cAddr = io( 1 ) devAddr = io( 2 ) cnt = io( 3 ) res = read( i2cAddr, devAddr, cnt ) setIo( 1, res ) setIo( 0, 0 ) } // Else check if write operation? else if ( io( 0 ) == 2 ) { i2cAddr = io( 1 ) devAddr = io( 2 ) cnt = io( 3 ) res = write( i2cAddr, devAddr, cnt ) setIo( 1, res ) // Report operation is completed setIo( 0, 0 ) } // Else it is unrecognized and just reset! else setIo( 0, 0 ) // Some delay. msleep( 50 ) // Blinking LED number 1. setLed( led ) if ( led == 0 ) led = 1 else led = 0 // When IO takes place both LEDs should blink. } }
рдкрд╛рдпрдерди рдЬреАрдпреВрдЖрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд░реЛрдд рдХреЛрдб