Outils pour utilisateurs

Outils du site


start:raspberry:i2c

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
start:raspberry:i2c [2025/03/02 17:54] – créée adminstart:raspberry:i2c [2025/03/02 18:34] (Version actuelle) – [Installer le module smsbus python3] admin
Ligne 1: Ligne 1:
-======== I2C raspberry ========+======== I2C raspberry  <--> ESP32 ========
  
-<code python exemple010.py> 
-# Raspberry Pi Master for Arduino Slave 
-# i2c_master_pi.py 
-# Connects to Arduino via I2C 
-# DroneBot Workshop 2019 
-# https://dronebotworkshop.com 
-from smbus import SMBus 
  
-addr = 0x8 # bus address 
-bus = SMBus(1) # indicates /dev/ic2-1 
  
-numb 1+== Installer le module smsbus python3 ==
  
-print ("Enter 1 for ON or 0 for OFF")+   sudo apt-get install  python3-smbus
  
 +faire :  
 +   sudo pip list ( pour verifier l'installation )
 +
 +==== Programme en python sur RPI ====
 +
 +<code python exemple010.py>
 +from smbus import SMBus
 + 
 +addr = 0x55 # L'adresse du bus I2C sur l'ESP32
 +bus = SMBus(1) # indique le repertoire /dev/ic2-1
 + 
 +numb = 1
 + 
 +print ("taper 1 pour ON ou 0 pour  OFF")
 + 
 while numb == 1: while numb == 1:
     ledstate = input(">>>>")     ledstate = input(">>>>")
-    if ledstate == "1": +    if ledstate == "1": # Allume la Led gpio 12 sur l'ESP32 
-        bus.write_byte(addr, 0x1) # switch it on  +        bus.write_byte(addr, 0x1) # Allume sur 1 
-    elif ledstate == "0": +    elif ledstate == "0": # Eteint  la Led gpio 12 sur l'ESP32 
-        bus.write_byte(addr, 0x0) # switch it off+        bus.write_byte(addr, 0x0) # Eteint sur 0
     else:     else:
         numb = 0         numb = 0
-         
 </code> </code>
 +
 +
 +==== Programme  reception  I2C C-Arduino sur ESP32 ====
 +
 +<code c exemple012.ino>
 +/*Arduino Slave for Raspberry Pi Master
 +  i2c_slave_ard.ino
 +  Connects to Raspberry Pi via I2C
 +  
 +  DroneBot Workshop 2019
 +  https://dronebotworkshop.com
 +*/
 + 
 +// Include the Wire library for I2C
 +#include <Wire.h>
 + 
 +// LED on pin 12
 +const int ledPin = 12; 
 + 
 +void setup() {
 +  // Configure  l'adresse I2C de l'ESP32 SLAVE
 +  Wire.begin(0x55);
 +  
 +  // Recoit les données du bus I2C                
 +  Wire.onReceive(receiveEvent);
 +  
 +  // Active la LED 13 sur GPIO 12 et l 'eteint
 +  pinMode(ledPin, OUTPUT);
 +  digitalWrite(ledPin, LOW);
 +}
 + 
 +
 +void receiveEvent(int howMany) {
 +  while (Wire.available()) { // boucle tant que l on recoit des caractéres sur le bus I2C 
 +    char c = Wire.read(); // recoit les caracteres envoyés sur le bus
 +    digitalWrite(ledPin, c);// Allume ou eteint la LED 12
 +  }
 +}
 +void loop() {
 +  delay(100);
 +}
 +</code> 
/home/chanteri/www/fablab37110/data/attic/start/raspberry/i2c.1740934465.txt.gz · Dernière modification : 2025/03/02 17:54 de admin