Arduino > Exemple I2C TPA81
Contents (hide)
L'exemple suivant permet de recevoir par ASCII à chaque 20 millisecondes les 10 registres d'un capteur TPA81 branche par I2C.
Registre | Lecture | Écriture |
---|---|---|
0 | Version | Changer adresse I2C |
1 | Température ambiante | - |
2 | Pixel 1 | - |
3 | Pixel 2 | - |
4 | Pixel 3 | - |
5 | Pixel 4 | - |
6 | Pixel 5 | - |
7 | Pixel 6 | - |
8 | Pixel 7 | - |
9 | Pixel 8 | - |
TPA81 | Arduino |
---|---|
+5V | 5V |
SDA | Broche analogique 4 et 5V par résistance 1.8k |
SCL | Broche analogique 5 et 5V par résistance 1.8k |
GND | Gnd |
/* DESCRIPTION ================ L'exemple suivant permet de recevoir par ASCII à chaque 20 millisecondes les 10 registres d'un capteur TPA81 branche par I2C. BRANCHEMENT ================ TPA81 <-> ARDUINO 5V <-> 5V SDA <-> Broche analogique 4 (SDA) et 5V par résistance 1.8k SCL <-> Broche analogique 5 (SCL) et 5V par résistance 1.8k GND <-> GND ADRESSE I2C ================ La documentation du TPA81 indique qu'il utilise l'adresse I2C 0xD0 (B11010000). Mais la logitheque Wire ne supporte pas les adresses avec un huitieme bit au MSB. Nous devons donc decaler les bits vers la droite: 0xD0 (B11010000) >> 1 = 0x68 (B01101000) L'adresse I2C devient donc 0x68. PROTOCOL ASCII ================ Le code envoit un message ASCII selon le format suivant: tpa81 <version> <temperature ambiante> <pixel 1> <pixel 2> <pixel 3> <pixel 4> <pixel 5> <pixel 6> <pixel 7> <pixel 8> Thomas Ouellet Fredericks */ #include <Wire.h> // Inclure la logitheque I2C. unsigned long lastMillis; void setup() { Wire.begin(); // Initialiser la logitheque I2C. Serial.begin(57600); // Initialiser la communication serie. } void loop() { // Declencher la boucle suivante à chaque 20 millisecondes. if ( millis() >= lastMillis + 20 ) { lastMillis = millis(); // Commencer le message ASCII avec "tpa81". Serial.print("tpa81"); // On repette la boucle suivante pour chaque registre. for (int i=0; i<=9; i++) { // Envoyer l'adresse I2C. Wire.beginTransmission(0x68); // Envoyer le numero du registre. Wire.write(i); Wire.endTransmission(); // Exiger un octet d'information à partir de l'adresse // I2C du tpa81. Wire.requestFrom(0x68, 1); // Rien faire en // attendant la donnee. while(Wire.available() < 1) ; // Lire la donnee. int b = Wire.read(); Serial.write(32); // Ajouter un espace au message ASCII. Serial.print(b); // Ajouter la donnee au message ASCII. } // Terminer le message ASCII. Serial.println(); } }
----------begin_max5_patcher---------- 3183.3oc6cs0ajhiE94jeEVklG1UJIBega6SSuWdamUs1QZeo0nHt3TgYn.D Pko6YT+CZ18mv7V2+wViMP.Jt3pJJhISTqNUBPYN74uywG6y4X90quZia7Go Ya.+EvG.Wc0ud8UWwOTwAtp7uuZyNmO5E5jwurMtIN4dORS2bi3jO4jF4rix OWmSEuOOjlm+oDp3FrYC3GJOEcmK0u3nvxCv+pAQauOk5kKtbjo1cZ2.fV7O PD9GF36zqak.dSrI18Gu0n5lFseWPD61l0r0YGTHLYGbOYhq3gs7o8pMODDR ehllEDG03puZiSRRiCeUiuRAD8iw7Fx3l5CEDINjV8gRoOET88sDG7yWW07M dvs0EOw1MevI2oU8fy5i15EGJZ9O.fbXp9GZsuvvXueRf0UBxl3DZTPTRJMi Fk6j28A0m9fy9v76eHNJOK3W38dPzcZ8c9Gb7nsZ6lmrlX7tz.mvMUWx1z.+ 3nBgn02r3vU2tO.3PfdyGE94ibR54qlwdJ1m45jVfutg7l.Ucx733v1mp9Ik Q0chB14jSyCDhJRqtQC1kjFDk25FQibXswiYdowggsZJwYdpmy3y508n+bfe 9i71pIPxt7fjpNfM0HjevVZVd6ik6rMq8QZo61jN1TGt0w6nKGQ+YltSU6wu IzOJts4fP.r4YFfLzud9MfMbj6GZbU8ngi0g2oyX3V7NaLh+GMoucTxs5JP8 SvFxLPOlBPUm3yWec0ubyk.McAZmJZ55DsUVDUmvgRhvlAlvMfLBhhMWuPJD rklmDmlCPmJzV.o2HOeEB4nKTmitl5Sht5yN5hWJzcAT+I1hA3wRp9iwJMYc GMKyYKsW7LilC9lSGPkEIMDZ+XgeSifjnSDIQChjvkgXlxtkTPgV+4vNkFPg BeuPSooiLlc.cgritk47C.cdJ6SBmHcCNwzrPEWexQkP5JMZNlhtWXbF8Rqm W9A1dJ8bDYspmuXdLAMvBWkzkyiIDZ0NHjiWdvSzEXbHrgFWQeR9IzPo4mEH m697b1zyZ9bmFmGWfJ0xJalogg26Fm5SSYS09brj1Gq0ca7SzzFS3W6NKMDA ZeSu+FrCdK95wQsZ.b8W6veqaCzbgBZ4ML2nNl2ka2uhi.S5R+Gg4HV5CnlV uM2vlYKNS4rnCiiS1Lf32URZxEgxyEYdgD4KVTEqVcpCpwm3jxZsbZ58hEJn 0BCUCTc5jDKlS4Of8Bsxe8clGQKBxvKlTOjoojw2T.WHEP8mU+fZ5mm9mnYv H4T+RoOvDoGmWEPxa5epl92HNnEF63K7y5L7QaRmyzEbbw5tXnMkyYj4eAWl S+I7h2siFk2Kd9OofRe2.e4+wW34u76.mGdHnHDEfPJHJdGvmlwm6aFH6q+V Z.E36DkABc.OPi95+MOkB9NmOdWy1OLHh5wzVx6R5Fou5gzstsWo5g5dLEK2 Py3zXXLh6dZyP2i6dWl9aVf+A5vs63zN36L2cmi4qsHzAWJ+rKmFnFovMawb VFyMaSk1K6QmxRBaTdevepfz+muXvIxrbcc4eXM4xmo1yZQzralX7dhEeJZH gMU8peN3zdOASmM6TpL8wCf0L9vxkiMmWuuMej1a0kCIfChDCaKBt.HwXCt7 2n.uXeJHglxbBhMLBH8q+l29D1fH7AWxJFcIqwvKhKJINYenXzGVSuGjDtOC 35jM7HLjYdDFSX8X9E5mVUtALnC.jY2A.skZDihHYcAWalxfsV5hOwZxXDXr 1G03BBlnRFoEerWCyIAyU8BwFx9uWH0I8bWP1h+W86hFTxHGTF4UC6IC4Jb1 M.PlQfdegczlxPyzm5fSdhgx9.PMOcWrO8foDOxpJTtZBCDg6b5tx7NYSkmY fM2T7i8YtYzBb9V+GRiciyqOy+9eQP2ZXQv298u+80G8uFtmlGGm+3seGSB2 09pg3+Abfq98+82c62+oHOY4OnxfNA6eJjRtBE34X9KSsRDuHw6m0kldwMVJ buFYNYHVrU5Yw+xGc5RRsHsojH3zVJc3TkeUQX35W98FNw58XbPV.2+Tt2Sh EE4tMyrSnUYSkXUQwk1PHiLEg4m.K+pY7bBSV3Y9.4GH+or3782+jEuO0qhR VNoGP6GW1bExChpsX9gmibO.15BeLv2uc5ZJxvwrBie9x6g8QKxxJyE4.WmK 7ESlMjTl64g6kRlKBHdmt7AjYC0RlkAmUGpQQpbHmJn5Hx5RxLPFpkLKELao NxrrVMJRfRUQlsjUlUHKc1xJyDkQlKlxhT5fpCcl2iKkYCa0RlwxPMzTKYVJ 5rtZIyHIjY0YDErr9ZnRTC75ymtdFba.bVc7PBSVgbCo8pSsDYjrSeUgjYsU lLar5liBex+qMKclxBypienjU2DtIRq.pNrYi02vIlqNSFVqOKFROY64RjKy BUwQ3+T7XHyNLQnm+f6fDgAY7PJV8YUTOq2RH5c464w9SGiD0HoHXTnFQqu2 zdPlcRBxI730J7QMR+CPim69iZwXanFi7bqgD0jS2vD0akJObzJdMryZnKBY lofIfM4oSfdw9rwIsiYnoT6XFUEm9a6YFuP6YFYdNgTFZ.HZLinHc8KVD0gE IdTQ0xirFq5OZFRxSMy3MdwylqDGFip3YG.4.KyBdg4av2.Y+wv0HJ9LwXKa dFxVUQZVhb7xd0VLiJAw01Bcj7VyWC7VDm2RVDdqMTTPyhpyTFdq0a71o.Uy i1dq8qAdqFm2hVDdaEDa.kj2hzdi2NEnZ.OR6sH3q.dqEm1psHz1JDth1pMI sE8Fscx8QB1fWGm41WCzViBX0ZQXsU.bIqsbBwi4jvar1oSKWxw5j.9U.qkC qKyTxp.X4Ysj2XsSN.l9wQZeM3XKe9XKyzwJgW4oru4U6jXJCjNR+CrTZR6D aDmtmSwjH09rwsk6g.kgJXxchyU6tF69nDGueBDz9emYM2cbeL4V3qkwyanV Pl8mI5KLl89BqEauR7LJoTILRXAE07mXaJaxZzkrZq24mGXia4cQFWq1Fb4H ahsd1wFYSe8uqYTpaRDUO+en20LJGxvPSM10LtHU8lr46OTa0koG5qtD.xPo jXYR.HhRkWXxHw1qtLYyRojXhLIxFToDYcYruoV7BCYDYSkRjMkQj0UJQVl7 kGhUJQFutpbZ8UWputBqAYz5SjgquDOGos5fYnrd2iTGu6gVqOXVV+6gVqus gCEBlkcvDEppDfqugSfxVjoP0Yxev02PfRu28.UHYdEND3BWTd0UETYYhj47 D0+d1cf5keew1TXf69bwh20rrQN2pmX5py3HJofdEhQt4CcS2FF65DVVnL0e 2dpbgSuPpZuwp8b3Bd2N2.1wA4zcIzTm78ozIJ7nC1pz5MR2hpooLd.H8Qq2 HxrTuQZmR8Wsem6yuihksRqJCfWqno1akYXyCXWIJnqMJHfNQPXjsPx9BqpZ APh2V.kUi2D.DTMAn9qfueIDjEF3QAvitL9lpDFqXUh3yqaNFnUu6YJKng5G XJOZqWNIZ2YifFVl721MDL1D270TxI.k6X1kCXnl+Xu0vagNYzblryZjxTBq 7MgPCrnuDGyvnYIfhviVBn06WlGO4pp21Z1HaCYD++TVvjymgaA3HLbMH4Zl raO.4xDgsI0uFyssLMMsNcx0Kfdpv3FQrgfOtdZckMsFzSG.JCxicNkAJj.C wh3KSFsrkqK4NYwP7nksbGLzDYivV0zQKMclcjYGCE6Yv4INVWN9n3CyQUsg 5qe93Cow6x9zN23vYsR5qnjhjcvDOJLRl0Jo+EgRlQCEk+EnNC0kFHq1d+q2 x+k.XQlC7BUu2jk+7z0wuj.KanmsL88jBeOtTJ6XM9v4liO3C5RprOyfY6Te qyaLEmYUSGQDuyZQ7OHvt4LXu0bz4gg8poW4ADFYXaT7alFDH9RfgMdOkMSP nHarKgvCe4j0WZYuFPvAToYyDHM93ckT14IWBi5iNzs9q.hH7RLhMTC+bBsO DIjr9IgcdYbN6rPw7YLFcwZPWN+dVJXT7pqA7stN68YydyPS6DWELo3lkkJL zZzApmETEcVnJWtZmWsBPta7FJg5wiyfToRzgAX3vfKbPetzhiTxyxINMSNS YR90KpzXnTXikRIM5JkzPjPZzWLoAKC3fWNdLeygeJ0Jr9xJOShOH0BeZ+VZ 3xJOR.OjkylroL8VvkUdlr2xd4jGoFlXA6ujxzr4xIOxXbFtbVefXI3OPzxJ OHERdjw7C7TG8R3.cmc4zBQoytaZmc1zt6porV6yW++w76PEl -----------end_max5_patcher-----------