Guten Tag,
für ein Projekt möchte ich mit einem zwei Tastern den Widerstandswert eines Digitalen Potis ändern, in den meisten Beispielcodes die ich gefunden habe kommt der Befehl digitalPotWrite vor, dieser ist in meinem Code nur grau, aber in den Beispielen Blau, bedeutet dass das er diesen Befehl nicht kennt oder ist das gar nicht so schlimm?
Ich habe es nun geschafft, falls jemand auch ein digitalen Poti (in meinem Falle das MCP4151) via Taster steuern möchte, wäre dies mein Code ist nicht der beste und schönste aber er funktioniert, für Verbesserungsvorschläge bin ich aber natürlich offen.
//Steuerung des Poti MCP4151 via Taster
#include <Bounce2.h>
#include <SPI.h>
Bounce2::Button MinusButton = Bounce2::Button();
Bounce2::Button PlusButton = Bounce2::Button();
const int Minus = 5;
const int Plus = 8;
int Wischer = 120;
byte address = 0x00;
int CS = 7;
int CSMerker = 0;
void setup() {
Serial.begin(115200);
pinMode (CS, OUTPUT);
SPI.begin();
MinusButton.attach (Minus, INPUT);
PlusButton.attach (Plus, INPUT);
MinusButton.interval (1);
PlusButton.interval (1);
PlusButton.setPressedState(HIGH);
MinusButton.setPressedState(HIGH);
}
void loop(){
MinusButton.update();
PlusButton.update();
if (Wischer == 250){ //Poti besitzt eigentlich 257 Stufen, 250 waren aber leichter zum Berechnen
Wischer = 250;
}
if (MinusButton.pressed()&& Wischer > 0){
Wischer= Wischer - 5;
}
else if (MinusButton.pressed()&& Wischer == 0){
Wischer = Wischer - 0;}
if (PlusButton.pressed()&& Wischer <250){
Wischer= Wischer + 5;
}
else if (PlusButton.pressed()&& Wischer == 250){
Wischer = Wischer + 0;
}
digitalWrite(CS, LOW);
SPI.transfer(address);
SPI.transfer(Wischer);
digitalWrite(CS, HIGH);
}
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.