219 lines
8.7 KiB
HTML
219 lines
8.7 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<title>I2C \ Language (API) \ Processing 2+</title>
|
|
|
|
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="Author" content="Processing Foundation" />
|
|
<meta name="Publisher" content="Processing Foundation" />
|
|
<meta name="Keywords" content="Processing, Sketchbook, Programming, Coding, Code, Art, Design" />
|
|
<meta name="Description" content="Processing is a flexible software sketchbook and a language for learning how to code within the context of the visual arts. Since 2001, Processing has promoted software literacy within the visual arts and visual literacy within technology." />
|
|
<meta name="Copyright" content="All contents copyright the Processing Foundation, Ben Fry, Casey Reas, and the MIT Media Laboratory" />
|
|
|
|
<script src="../../javascript/modernizr-2.6.2.touch.js" type="text/javascript"></script>
|
|
<link href="../../css/style.css" rel="stylesheet" type="text/css" />
|
|
|
|
</head>
|
|
<body id="Langauge-en" onload="" >
|
|
|
|
<!-- ==================================== PAGE ============================ -->
|
|
<div id="container">
|
|
|
|
|
|
<!-- ==================================== HEADER ============================ -->
|
|
<div id="ribbon">
|
|
<ul class="left">
|
|
<li class="highlight"><a href="http://processing.org/">Processing</a></li>
|
|
<li><a href="http://p5js.org/">p5.js</a></li>
|
|
<li><a href="http://py.processing.org/">Processing.py</a></li>
|
|
<li><a href="http://android.processing.org/">Processing for Android</a></li>
|
|
</ul>
|
|
<ul class="right">
|
|
<li><a href="https://processingfoundation.org/">Processing Foundation</a></li>
|
|
</ul>
|
|
<div class="clear"></div>
|
|
</div>
|
|
<div id="header">
|
|
<a href="/" title="Back to the Processing cover."><div class="processing-logo no-cover" alt="Processing cover"></div></a>
|
|
<form name="search" method="get" action="//www.google.com/search">
|
|
<p><input type="hidden" name="as_sitesearch" value="processing.org" />
|
|
<input type="text" name="as_q" value="" size="20" class="text" />
|
|
<input type="submit" value=" " /></p>
|
|
</form>
|
|
</div>
|
|
<a id="TOP" name="TOP"></a>
|
|
|
|
<div id="navigation">
|
|
<div class="navBar" id="mainnav">
|
|
<a href="../../index.html" >Language</a><br>
|
|
<a href="../../libraries/index.html" class='active'>Libraries</a><br>
|
|
<a href="../../tools/index.html">Tools</a><br>
|
|
<a href="../../environment/index.html">Environment</a><br>
|
|
</div>
|
|
|
|
<script> document.querySelectorAll(".processing-logo")[0].className = "processing-logo"; </script>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- ==================================== CONTENT - Headers ============================ -->
|
|
<div class="content">
|
|
|
|
<p class="ref-notice">This reference is for Processing 3.0+. If you have a previous version, use the reference included with your software in the Help menu. If you see any errors or have suggestions, <a href="https://github.com/processing/processing-docs/issues?state=open">please let us know</a>. If you prefer a more technical reference, visit the <a href="http://processing.github.io/processing-javadocs/core/">Processing Core Javadoc</a> and <a href="http://processing.github.io/processing-javadocs/libraries/">Libraries Javadoc</a>.</p>
|
|
|
|
<table cellpadding="0" cellspacing="0" border="0" class="ref-item">
|
|
<tr class="name-row">
|
|
<th scope="row">Name</th>
|
|
<td><h3>I2C</h3></td>
|
|
</tr>
|
|
|
|
<tr class=""><th scope="row">Examples</th><td><div class="example"><pre >
|
|
import processing.io.*;
|
|
I2C i2c;
|
|
|
|
void setup() {
|
|
//printArray(I2C.list());
|
|
i2c = new I2C(I2C.list()[0]);
|
|
}
|
|
|
|
void draw() {
|
|
background(map(mouseX, 0, width, 0, 255));
|
|
|
|
// send value over I2C to an digital-to-analog
|
|
// converter with address 96 (hex 0x60)
|
|
int val = int(4095 * map(mouseX, 0, width, 0.0, 1.0));
|
|
i2c.beginTransmission(0x60);
|
|
i2c.write(val >> 8);
|
|
i2c.write(val & 255);
|
|
i2c.endTransmission();
|
|
}
|
|
|
|
</pre></div>
|
|
</td></tr>
|
|
|
|
<tr class="">
|
|
<th scope="row">Description</th>
|
|
<td>
|
|
Opens an I2C interface as master<br/>
|
|
<br/>
|
|
I2C is a serial bus, commonly used to attach peripheral ICs (Integrated Circuits)
|
|
to processors and microcontrollers. It uses two pins, SDA (for data) and SDL (for
|
|
the clock signal). Multiple "slave" devices can be connected to the same bus, as
|
|
long as they are responding to different addresses (see below).<br/>
|
|
<br/>
|
|
The I2C "master" device initiates a transmission, which includes sending the
|
|
address of the desired "slave" device. I2C addresses consist of 7 bits plus one
|
|
bit that indicates whether the device is being read from or written to. Some
|
|
datasheets list the address in an 8 bit form (7 address bits + R/W bit), while
|
|
others provide the address in a 7 bit form, with the address in the lower 7 bits.<br/>
|
|
<br/>
|
|
This library expects addresses in their 7 bit form, similar to Arduino's Wire
|
|
library, and what is being output by the i2cdetect utility on Linux. If the
|
|
address provided in a datasheet is greater than 127 (hex 0x7f) or there are
|
|
separate addresses for read and write operations listed, which vary exactly by
|
|
one, then you want to shift the this number by one bit to the right before passing
|
|
it as an argument to <a href="I2C_beginTransmission_.html">beginTransmission()</a>.
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
|
|
<tr class=""><th scope="row">Methods</th><td><table cellpadding="0" cellspacing="0" border="0"><tr class="">
|
|
|
|
<th scope="row"><a href="I2C_beginTransmission_.html">beginTransmission()</a></th>
|
|
<td>Begins a transmission to an attached device</td>
|
|
</tr>
|
|
<tr class="">
|
|
|
|
<th scope="row"><a href="I2C_close_.html">close()</a></th>
|
|
<td>Closes the I2C device</td>
|
|
</tr>
|
|
<tr class="">
|
|
|
|
<th scope="row"><a href="I2C_endTransmission_.html">endTransmission()</a></th>
|
|
<td>Ends the current transmissions</td>
|
|
</tr>
|
|
<tr class="">
|
|
|
|
<th scope="row"><a href="I2C_list_.html">list()</a></th>
|
|
<td>Lists all available I2C interfaces</td>
|
|
</tr>
|
|
<tr class="">
|
|
|
|
<th scope="row"><a href="I2C_read_.html">read()</a></th>
|
|
<td>Reads bytes from the attached device</td>
|
|
</tr>
|
|
<tr class="">
|
|
|
|
<th scope="row"><a href="I2C_write_.html">write()</a></th>
|
|
<td>Adds bytes to be written to the device</td>
|
|
</tr></table></td></tr>
|
|
|
|
<tr class=""><th scope="row">Constructor</th><td><pre>I2C(<kbd>dev</kbd>)
|
|
</pre></td></tr>
|
|
<tr class=""> <th scope="row">Parameters</th><td><table cellpadding="0" cellspacing="0" border="0"><tr class="">
|
|
<th scope="row" class="code">dev</th>
|
|
<td>String: interface name</td>
|
|
</tr></table></td> </tr>
|
|
|
|
</table>
|
|
|
|
Updated on April 30, 2017 02:33:20pm EDT<br /><br />
|
|
|
|
<!-- Creative Commons License -->
|
|
|
|
<div class="license">
|
|
<a rel="license" href="//creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border: none" src="https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png" /></a>
|
|
</div>
|
|
<!--
|
|
|
|
<?xpacket begin='' id=''?>
|
|
<x:xmpmeta xmlns:x='adobe:ns:meta/'>
|
|
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
|
|
<rdf:Description rdf:about=''
|
|
xmlns:xapRights='http://ns.adobe.com/xap/1.0/rights/'>
|
|
<xapRights:Marked>True</xapRights:Marked>
|
|
</rdf:Description>
|
|
<rdf:Description rdf:about=''
|
|
xmlns:xapRights='http://ns.adobe.com/xap/1.0/rights/'
|
|
>
|
|
<xapRights:UsageTerms>
|
|
<rdf:Alt>
|
|
<rdf:li xml:lang='x-default' >This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.</rdf:li>
|
|
<rdf:li xml:lang='en' >This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.</rdf:li>
|
|
</rdf:Alt>
|
|
</xapRights:UsageTerms>
|
|
</rdf:Description>
|
|
<rdf:Description rdf:about=''
|
|
xmlns:cc='http://creativecommons.org/ns#'>
|
|
<cc:license rdf:resource='http://creativecommons.org/licenses/by-nc-sa/4.0/'/>
|
|
</rdf:Description>
|
|
|
|
</rdf:RDF>
|
|
</x:xmpmeta>
|
|
<?xpacket end='r'?>
|
|
|
|
-->
|
|
|
|
</div>
|
|
|
|
<!-- ==================================== FOOTER ============================ -->
|
|
<div id="footer">
|
|
<div id="copyright">Processing is an open project intiated by <a href="http://benfry.com/">Ben Fry</a> and <a href="http://reas.com">Casey Reas</a>. It is developed by a <a href="../../about/people.html">team of volunteers</a>. </div>
|
|
<div id="colophon">
|
|
|
|
<a href="../../copyright.html">© Info</a>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<script src="../../javascript/jquery-1.9.1.min.js"></script>
|
|
<script src="../../javascript/site.js" type="text/javascript"></script>
|
|
</body>
|
|
|
|
</html>
|