Na veel gepuzzel (wat ik me had kunnen besparen), heb ik besloten om toch maar de NodeMCU er uit te gooien en terug te gaan naar de Arduino Mega.
Dit omdat ik niet alles aan de praat kreeg met de NodeMCU in combinatie met een multiplexer.
Eigenlijk ben ik nu deels weer beland op een punt waar ik ben begonnen. Ik moest ongeveer 3 revisies van het script terug om de juiste te bereiken :(.
Maar goed, niet geklaagd, ik kan nu weer verder. Als eerste ben ik begonnen met het volgende schema aan te leggen:
Ik voer de waarde van de 5k potmeter in op de A0. Dit is een van de potmeters die gaat worden gebruikt. (A0-A5 worden voor de potmeters gebruikt. )
Om de led-strip aan te sturen, maak ik gebruik van de digitale aansluiting 8.
Door gebruik te maken van een TIP121 wordt het signaal versterkt tussen de 0-12V. Hierdoor is het mogelijk om de LED-strip te regelen.
Door gebruik te maken van een schakelaar in de lijn van de D8 naar de transistor, is het mogelijk om de voeding van de LED-strip helemaal uit te schakelen.
int potPin = A0; //Declare potPin to be analog pin A0
int LEDPin = 8; // Declare LEDPin to be arduino pin 9
int readValue; // Use this variable to read Potentiometer
int writeValue; // Use this variable for writing to LED
void setup() {
pinMode(potPin, INPUT); //set potPin to be an input
pinMode(LEDPin, OUTPUT); //set LEDPin to be an OUTPUT
Serial.begin(9600); // turn on Serial Port
}
void loop() {
readValue = analogRead(potPin); //Read the voltage on the Potentiometer
writeValue = ((254. / 1023.) * readValue); //Calculate Write Value for LED
analogWrite(LEDPin, writeValue); //Write to the LED
Serial.print("You are writing a value of "); //for debugging print your values
Serial.println(writeValue);
}
Een klein beetje uitleg:
potPin A0 is voor het meten van de potmeter en LEDpin (8) wordt gebruikt om de transistor aan te sturen.
In de loop wordt een readValue gevuld. Dit is de waarde van de potPin. Deze waarde wordt omgerekend omdat deze maximaal op 2014 uit kan komen. Het is niet mogelijk om deze waarde naar een poort te sturen, daarom deze berekening: (254. / 1023.) * readValue
Of het helemaal goed is weet ik niet, maar tot nu toe werkt het wel 🙂