Ceci est une ancienne révision du document !
_04/06_ : Seconde piste d'étude : Initiation à l'arduino
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 choe 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 :
* Contrôle MCP 41100 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);