Hallo ! Ik heb een vraagje.. wil via een pot.meter op de zender (MX20) op mijn model een variabele spanning tussen 0 en 5 volt kunnen regelen. Iemand een idee hoe ik dit het beste kan doen ? *toelichting te bereiken doel: aansturen input op 'Arduino micro' tussen 0 en 5 volt waardoor de Arduino een digitale 'output' genereerd waarmee ik (veel!) verschillende programma's op de Arduino kan activeren. Groetjes, Martijn
Wellicht de simpelste oplossing is om een servo in je model een potmeter te laten aansturen, die vervolgens de spanning aan je Arduino afgeeft. Alternatief is om je Arduino direct het PWM (servo) signaal van je RC ontvanger te laten decoderen. Aan die methode kleeft wel het nadeel dat de PWM input routine (pulsein) een vertragende werking heeft op je Arduino routine. Tenzij je die kunt programmeren middels interrupts. In dat geval houd ik mij aanbevolen voor zo'n stukje niet-vertragende PWM lees routine !
sorry??? je hebt een arduino en die wil je met 0-5V aansturen in plaats van met je servo signalen..... FOEI! arduino kan ook prima servo signalen inlezen https://www.arduino.cc/en/Reference/PulseIn waarom moeilijk doen als het makkelijk kan? hmeijdam was me net voor
lol kijk... daarom post ik dat soort dingen hier ! Super antwoorden ! Dat met de servo signalen heb ik wel aan gedacht maar helemaal snappen deed ik het niet. Heb nu om de Arduino te schakelen een sxm van Graupner gebruikt maar dat werkt niet lekker en ik kan er 2 programma's mee oproepen, wat te weinig is. Heeft een van jullie wellicht een stukje programma zodat ik een idee heb van de te gebruiken waarden ?
@hmeijdam http://www.benripley.com/diy/arduino/three-ways-to-read-a-pwm-signal-with-arduino/ De tekst is wat crypisch en zal niet 1:1 compileren, maar je snapt wat de bedoeling is. Zet de interrupt op rising edge, Int: log de timer, zet de interrupt op falling edge, return volgende Int: vorige timer af van huidige, zet interrupt op rising edge, return. Maakt gebruik van een arduino "pinchangeint" library (zie #include) Pin Change Interrupts #include <PinChangeInt.h> #define MY_PIN 5 // we could choose any pin volatile int pwm_value = 0; volatile int prev_time = 0; uint8_t latest_interrupted_pin; void rising() { latest_interrupted_pin=PCintPort::arduinoPin; PCintPort::attachInterrupt(latest_interrupted_pin, &falling, FALLING); prev_time = micros(); } void falling() { latest_interrupted_pin=PCintPort::arduinoPin; PCintPort::attachInterrupt(latest_interrupted_pin, &rising, RISING); pwm_value = micros()-prev_time; Serial.println(state); } void setup() { pinMode(MY_PIN, INPUT); digitalWrite(MY_PIN, HIGH); Serial.begin(115200); PCintPort::attachInterrupt(MY_PIN, &rising, RISING); } void loop() { }