Cours:TPS 2103 tp positionnementMoteur : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
Ligne 7 : Ligne 7 :
 
=Esclave (target) i2c=
 
=Esclave (target) i2c=
  
 +
On donne les exemples suivant pour qu'un µcontroleur atmegaxxx se comporte comme un esclave i2c avec différents registres
 +
{|
 +
|-
 +
|
 +
<source lang=cpp>
 +
// *******
 +
// *******
 +
// i2c target
 +
// *******
 +
// *******
 +
// ne pas modifier !!!
 +
// *******
 +
// *******
  
 +
// Include the required Wire library for I2C
 +
#include <Wire.h>
 +
 +
const int8_t i2cAddress = 0x1A;
 +
 +
volatile uint16_t valPotar;
 +
 +
void setup() {
 +
  // Start the I2C Bus as Slave on address
 +
  Wire.begin(i2cAddress);
 +
  Wire.onRequest(requestEvent);
 +
}
 +
 +
 +
void requestEvent()
 +
{
 +
  Wire.write(valPotar>>2);
 +
}
 +
 +
 +
void loop() {
 +
  valPotar=analogRead(A0);
 +
  _delay_ms(100);
 +
}
 +
</source>
 +
||
 +
<source lang=cpp>
 +
// *******
 +
// *******
 +
// i2c target
 +
// *******
 +
// *******
 +
// ne pas modifier !!!
 +
// *******
 +
// *******
 +
 +
// Include the required Wire library for I2C
 +
#include <Wire.h>
 +
 +
const int8_t i2cAddress = 9;
 +
 +
 +
void setup() {
 +
  DDRD=0xFF;
 +
  // Start the I2C Bus as Slave on address
 +
  Wire.begin(i2cAddress);
 +
  Wire.onReceive(receiveEvent);
 +
}
 +
 +
void receiveEvent(int nbBytes)
 +
{
 +
    PORTD=Wire.read();
 +
}
 +
 +
 +
void loop() {
 +
  _delay_ms(100);
 +
}
 +
 +
</source>
 +
|}
  
 
=Interface écran/bouton=
 
=Interface écran/bouton=

Version du 13 avril 2023 à 21:36

Arduino-nano-pinout.png

Fiche résumé

Retour à la liste des Tds/Tps

Éléments de correction

simuler avec simulIDE

Pensez à mettre sur la 1ère ligne de votre code :
// Compiler: Avrgcc device: nomDuMicrocontroleur


Asservissement en position du moteur CC

Esclave (target) i2c

On donne les exemples suivant pour qu'un µcontroleur atmegaxxx se comporte comme un esclave i2c avec différents registres

// *******
// *******
// i2c target
// *******
// *******
// ne pas modifier !!!
// *******
// *******

// Include the required Wire library for I2C
#include <Wire.h>

const int8_t i2cAddress = 0x1A;

volatile uint16_t valPotar;

void setup() {
  // Start the I2C Bus as Slave on address 
  Wire.begin(i2cAddress);
  Wire.onRequest(requestEvent);
}


void requestEvent()
{
  Wire.write(valPotar>>2);
}


void loop() {
  valPotar=analogRead(A0);
  _delay_ms(100);
}
// *******
// *******
// i2c target
// *******
// *******
// ne pas modifier !!!
// *******
// *******

// Include the required Wire library for I2C
#include <Wire.h>

const int8_t i2cAddress = 9;


void setup() {
  DDRD=0xFF;
  // Start the I2C Bus as Slave on address 
  Wire.begin(i2cAddress);
  Wire.onReceive(receiveEvent);
}

void receiveEvent(int nbBytes)
{
    PORTD=Wire.read();
}


void loop() {
  _delay_ms(100);
}

Interface écran/bouton