_04/06_ : Seconde piste d'étude : Initiation à l'arduino
( photo arduino bleu )
Réaliser un potentiomètre numèrique ( MCP 41010 )
Documentation:
_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
_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);
}