Outils pour utilisateurs

Outils du site


wiki:projets:protexp:partie_numerisation:arduino_m5stack_04_06_-_xx_06

Partie Codage : Utilisation Arduino et M5Stack

_04/06_ : Seconde piste d'étude : Initiation à l'arduino

( photo arduino bleu )

Réaliser un potentiomètre numèrique ( MCP 41010 )

Documentation:

  • YouTube Experimentboy2
  • Blog Eskimon
  • WikiFablab

_05/06_ On souhaite utiliser 2 potentiomètres de 10k et 100k ohm de résistance respectivement MCP41010 et MCP 41100 avec chacun 256 pas. Ce qui nous donnerait 256*256 solutions soit 65 536 pas pour une résistance de 110k. Chaque pas ferait varier la résistance de 110k/65 636 soit 1.67 Ohm par pas.

Attention à prendre des résistances adaptés ( 100 à 1k ohm ) pour éviter que ça crame.

( photo des 2 potentiomètre en série )

On arrive avec l'arduino à obtenir une courbe sinusoidale avec enormement de bruit. En effet le fait de mettre 2 potentiomètres en série ne permet pas d'avoir des valeurs de résistances continues il y'aura des sauts de valeurs ce qui se répercute en 1 bruit constant et régulier.

_06/06_ Familiarisation avec le M5Stack : Sur le logiciel arduino

  • Installation des drivers sur arduino : YouTube “ M5Stack Arduino IDE Setup in 5 minute ”
  • Réutilisation du code “ Blink ” dans exemple
  • Attetion bien remplacer tous les “ LED PIN ” into “ ledpin ”
  • Si ledpin = x . Brancher les 2 fils , 1 à la masse ( GND ) et l'autre en prise “ x ”

_11/06_ Contrôle du potentiomètre MCP41100 avec arduino

Tutorial :

programme : /* this program taken from arduino Example .

modified by By Mohannad Rawashdeh
http://www.genotronex.com

https://www.instructables.com/

This code used to control the digital potentiometer
MCP41100 connected to  arduino Board
CS >>> D10
SCLK >> D13
DI  >>> D11
PA0 TO VCC
PBO TO GND
PW0 TO led with resistor 100ohm .
*/

#include <SPI.h> byte address = 0x11; int CS= 10; int i=0;

void setup() {

pinMode (CS, OUTPUT);
SPI.begin();
// adjust high and low resistance of potentiometer
// adjust Highest Resistance .
 digitalPotWrite(0x00);
 delay(1000);

adjust wiper in the Mid point . digitalPotWrite(0x80); delay(1000); adjust Lowest Resistance .

 digitalPotWrite(0xFF);
 delay(1000);

}

void loop() {

  for (i = 0; i <= 255; i++)
  {
    digitalPotWrite(i);
    delay(10);
  }
  delay(500);
  for (i = 255; i >= 0; i--)
  {
    digitalPotWrite(i);
    delay(1);
  }

}

int digitalPotWrite(int value) {

digitalWrite(CS, LOW);
SPI.transfer(address);

/ Sketch pour contrôler un potentiomètre numérique MCP41100 au moyen d'un Arduino Uno. http://electroniqueamateur.blogspot.ca/2013/04/faire-varier-une-resistance-au-moyen-de.html /

#include <SPI.h>

const int slaveSelectPin = 10;

void setup() {

pinMode (slaveSelectPin, OUTPUT);
SPI.begin();

}

void loop() {

digitalPotWrite(0);  // valeur minimale
delay(10000); 

digitalPotWrite(255);  // valeur maximale  
delay(10000); 

digitalPotWrite(128);  // valeur médiane
delay(10000); 

}

int digitalPotWrite(int value) {

digitalWrite(slaveSelectPin, LOW);
SPI.transfer(0x11); 
SPI.transfer(value);
digitalWrite(slaveSelectPin, HIGH);

}

wiki/projets/protexp/partie_numerisation/arduino_m5stack_04_06_-_xx_06.txt · Dernière modification: 2020/10/05 16:39 (modification externe)