{"id":1003,"date":"2020-08-17T01:46:19","date_gmt":"2020-08-16T18:46:19","guid":{"rendered":"http:\/\/notes.opikdesign.com\/?p=1003"},"modified":"2026-03-27T21:16:19","modified_gmt":"2026-03-27T14:16:19","slug":"mengenal-i2c-di-dunia-iot","status":"publish","type":"post","link":"https:\/\/notes.opikdesign.com\/index.php\/2020\/08\/17\/iot-robot\/mengenal-i2c-di-dunia-iot\/","title":{"rendered":"Mengenal I2C di Dunia IoT"},"content":{"rendered":"\n<p>I2C atau IIC dari kepanjangan <em>Inter Integrated Circuit<\/em>. I2C adalah standar komunikasi serial dua arah yang menggunakan dua saluran untuk mengirim data (OUTPUT dari Master ke Slave) maupun menerima data (INPUT dari Slave ke Master). Sistem I2C terdiri dari saluran <strong>SCL<\/strong> (<em>Serial Clock<\/em>) dan <strong>SDA<\/strong> (<em>Serial Data<\/em>) yang membawa informasi data antara I2C dengan microcontroller -nya. Perangkat\/device yang dihubungkan dengan sistem I2C Bus dapat dioperasikan sebagai&nbsp;<em>Master<\/em>&nbsp;dan&nbsp;<em>Slave<\/em>.&nbsp;<em>Master<\/em>&nbsp;adalah perangkat yang memulai&nbsp;<em>transfer<\/em>&nbsp;data pada I2C Bus dengan membentuk sinyal&nbsp;<em>Start<\/em>, mengakhiri&nbsp;<em>transfer<\/em>&nbsp;data dengan membentuk sinyal&nbsp;<em>Stop<\/em>, dan membangkitkan sinyal&nbsp;<em>clock<\/em>.&nbsp;<em>Slave<\/em>&nbsp;adalah perangkat yang dialamati&nbsp;oleh <em>master.<\/em><\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Sinyal\u00a0<em>Start<\/em>\u00a0merupakan sinyal untuk memulai perintah yang didefinisikan sebagai perubahan tegangan (Volt) pada SDA dari nilai \u201c1\u201d menjadi \u201c0\u201d pada saat dimana SCL bernilai tegangan \u201c1\u201d. Sedangkan sinyal\u00a0<em>Stop<\/em>\u00a0merupakan sinyal untuk mengakhiri perintah yang didefinisikan sebagai perubahan tegangan SDA dari \u201c0\u201d menjadi \u201c1\u201d pada saat SCL \u201c1\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"265\" src=\"https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-31.png?resize=525%2C265&#038;ssl=1\" alt=\"\" class=\"wp-image-1024\" srcset=\"https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-31.png?resize=1024%2C516&amp;ssl=1 1024w, https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-31.png?resize=300%2C151&amp;ssl=1 300w, https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-31.png?resize=768%2C387&amp;ssl=1 768w, https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-31.png?w=1398&amp;ssl=1 1398w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Selain sinyal <em>Start<\/em> dan <em>Stop<\/em>, ada juga sinyal <em>Repetead Start<\/em>. Kondisi <em>start<\/em> dapat diulangi selama transmisi tanpa perlu mengakhiri terlebih dahulu dengan kondisi <em>Stop<\/em>. Digunakan untuk mengubah arah transmisi data, mengulangi upaya transmisi, menyinkronkan beberapa IC, atau bahkan mengontrol memori serial.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"343\" src=\"https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-30.png?resize=525%2C343&#038;ssl=1\" alt=\"\" class=\"wp-image-1022\" srcset=\"https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-30.png?w=958&amp;ssl=1 958w, https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-30.png?resize=300%2C196&amp;ssl=1 300w, https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-30.png?resize=768%2C502&amp;ssl=1 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>I2C Bus sangat support bermacam device yang memiliki cara komunikasi I2C, pengalaman dari 0x00 sampai 0xFF bisa sampai 256 device berbeda <em>addresses<\/em> antara <em>Master<\/em> dan beberapa <em>Slave<\/em>. Namun di system I2C Bus ada pembatasan jumlah pengalamatan perangkat\/device maksimal 128 address device.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"214\" src=\"https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-29.png?resize=525%2C214&#038;ssl=1\" alt=\"\" class=\"wp-image-1020\" srcset=\"https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-29.png?resize=1024%2C417&amp;ssl=1 1024w, https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-29.png?resize=300%2C122&amp;ssl=1 300w, https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-29.png?resize=768%2C313&amp;ssl=1 768w, https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-29.png?w=1464&amp;ssl=1 1464w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Agar mudah dipahami, <em>Master<\/em> adalah device <em>Core Processor\/Micro Controller<\/em>. I2C Bus <em>Addresses<\/em> pada <em>Slave<\/em> bekerja di 8 bit, namun tidak full 8 bit, karena inilah maksimal hanya 128 pengalamatan perangkat slave. Dimana 7 bit (MSB awal) adalah <em>Slave Addresses<\/em> sedangkan 1 bit terakhir merupakan perintah membaca atau menulis (RW).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"334\" height=\"100\" src=\"https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-27.png?resize=334%2C100\" alt=\"\" class=\"wp-image-1007\" style=\"width:456px;height:137px\" srcset=\"https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-27.png?w=334&amp;ssl=1 334w, https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-27.png?resize=300%2C90&amp;ssl=1 300w\" sizes=\"auto, (max-width: 334px) 100vw, 334px\" \/><\/figure>\n\n\n\n<p>Sebagai bentuk umpan balik,  setiap transmisi <em>byte<\/em>, perangkat penerima mengirimkan bit <em>Acknowledge Bit<\/em> (ACK) atau <em>Not Acknowledge Bit<\/em> (NACK). ACK dihasilkan oleh penerima dengan menahan garis SDA rendah (bernilai &#8220;0&#8221;) selama periode SCL tinggi (bernilai &#8220;1&#8221;), sementara NACK dihasilkan ketika penerima meninggalkan garis SDA secara pasif ditarik tinggi dan tidak merespons dengan cara apa pun.  Fakta ini menyiratkan bahwa sebagai respons terhadap byte alamat, semua <em>SLAVE<\/em> yang tidak cocok mengirim NACK dengan tidak merespons.<\/p>\n\n\n\n<p>ACK digunakan untuk menunjukkan bahwa byte (alamat atau data) berhasil dikirimkan atau diterima, dan transmisi dapat berlanjut ke transfer byte berikutnya. Kondisi <em>Stop<\/em> atau <em>Repetead Start<\/em>. NACK umumnya digunakan oleh penerima untuk menunjukkan apakah kesalahan terjadi di suatu tempat dalam mentransmisikan data. Ini digunakan untuk memberi sinyal ke perangkat pemancar untuk segera menghentikan transmisi atau melakukan upaya lain dengan mengirimkan <em>Repetead Start<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"209\" src=\"https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-33.png?resize=525%2C209&#038;ssl=1\" alt=\"\" class=\"wp-image-1028\" srcset=\"https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-33.png?resize=1024%2C407&amp;ssl=1 1024w, https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-33.png?resize=300%2C119&amp;ssl=1 300w, https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-33.png?resize=768%2C305&amp;ssl=1 768w, https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-33.png?w=1314&amp;ssl=1 1314w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Dalam melakukan&nbsp;<em>transfer<\/em>&nbsp;data pada I<sup>2<\/sup>C Bus, kita harus mengikuti tata cara yang telah ditetapkan. <em>Transfer<\/em>&nbsp;data hanya dapat dilakukan ketikan Bus tidak dalam keadaan sibuk. Selama proses transfer data, keadaan data pada SDA harus stabil selama SCL dalam keadan tinggi. Keadaan perubahan \u201c1\u201d atau \u201c0\u201d pada SDA hanya dapat dilakukan selama SCL dalam keadaan rendah. Jika terjadi perubahan keadaan SDA pada saat SCL dalam keadaan tinggi, maka perubahan itu dianggap sebagai sinyal&nbsp;<em>Start<\/em>&nbsp;atau sinyal&nbsp;<em>Stop<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"219\" src=\"https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-34.png?resize=525%2C219&#038;ssl=1\" alt=\"\" class=\"wp-image-1030\" srcset=\"https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-34.png?w=688&amp;ssl=1 688w, https:\/\/i0.wp.com\/notes.opikdesign.com\/wp-content\/uploads\/2020\/08\/image-34.png?resize=300%2C125&amp;ssl=1 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure>\n\n\n\n<p>I2C Bus di dunia IoT dipergunakan untuk mengatasi keterbatasan GPIO. Penggunaan perangkat Input seperti Sensor atau perangkat Output seperti Relay\/TRIAC\/IR yang begitu banyak dalam satu Mikrocontroller. Contohnya LCD Crystal atau LCD Olead, chip Input\/Output extended seperti PCF8574 atau MCP23017, chip counter, dsb.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I2C atau IIC dari kepanjangan Inter Integrated Circuit. I2C adalah standar komunikasi serial dua arah yang menggunakan dua saluran untuk mengirim data (OUTPUT dari Master ke Slave) maupun menerima data (INPUT dari Slave ke Master). Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan microcontroller &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/notes.opikdesign.com\/index.php\/2020\/08\/17\/iot-robot\/mengenal-i2c-di-dunia-iot\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Mengenal I2C di Dunia IoT&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[63],"tags":[],"class_list":["post-1003","post","type-post","status-publish","format-standard","hentry","category-iot-robot"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/notes.opikdesign.com\/index.php\/wp-json\/wp\/v2\/posts\/1003","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/notes.opikdesign.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/notes.opikdesign.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/notes.opikdesign.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/notes.opikdesign.com\/index.php\/wp-json\/wp\/v2\/comments?post=1003"}],"version-history":[{"count":16,"href":"https:\/\/notes.opikdesign.com\/index.php\/wp-json\/wp\/v2\/posts\/1003\/revisions"}],"predecessor-version":[{"id":1031,"href":"https:\/\/notes.opikdesign.com\/index.php\/wp-json\/wp\/v2\/posts\/1003\/revisions\/1031"}],"wp:attachment":[{"href":"https:\/\/notes.opikdesign.com\/index.php\/wp-json\/wp\/v2\/media?parent=1003"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/notes.opikdesign.com\/index.php\/wp-json\/wp\/v2\/categories?post=1003"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/notes.opikdesign.com\/index.php\/wp-json\/wp\/v2\/tags?post=1003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}