Problema con servo e ir

buongiorni,
sto provando ha scrivare un programma in cui comando un piccolo servo sotto input di un'IR, il programma l'ho finito ma non funziona, avete qualche idea?
vi lascio il programma, grazie.

//www.elegoo.com
//2016.12.12


#include "IRremote.h"
#include <Servo.h>

Servo myservo;
int pinLedV=4;
int pinLedR=5;


int receiver = 12; 
int pos = 0;


IRrecv irrecv(receiver);   
decode_results results;     

void setup()
{ 
  myservo.attach(9); 
  irrecv.enableIRIn();
  pinMode(pinLedV, OUTPUT);
  pinMode(pinLedR, OUTPUT);
}

void loop()
{
      digitalWrite(pinLedR,HIGH);
      digitalWrite(pinLedV,LOW);
    
if (irrecv.decode(&results)) // have we received an IR signal?

  {
    switch(results.value)

    {

      case 0xFFA857: // VOL+ button pressed

                     for (pos = 0; pos <= 50; pos += 1) {
                     myservo.write(pos);             
                         
  }

      case 0xFF629D: // VOL- button pressed
       digitalWrite(pinLedV,HIGH);
       digitalWrite(pinLedR, LOW);
                     for (pos = 0; pos <= 50; pos += 1) { 
                     myservo.write(pos);            
                      
  }
    }
    
      irrecv.resume();
  }  


}/* --end main loop -- */

Vai su google e cerca "Arduino IRremote Servo" ... le due librerie, se ben ricordo, hanno alcune incompatibilita tra di loro ... probabilmente dovrai modificare qualche cosa ... ::slight_smile:

Edit: ... invece ricordavo male ... QUI un progetto che fa quello che vuoi tu ... :smiley:

Guglielmo

ti ringrazio, ma secondo te quale è il problema?
inoltre, dovendo alzare un piccolo pistone, conviene un servo o un motore passo-passo? Il passo-passo per ora non funziona

Il problema è che tutte e due le librerie si basano sullo stesso timer (mi pare il 1)
O cerchi una libreria ServoTimer2 oppure, mi pare, modifichi la libreria IR, in un file è possibile dirgli di usare altro timer. Ricorda, Arduino Uno ha solo 3 timer. Il timer 0 è impegnato a fase da contatore per millis() e le tempistiche di base. Se uno poi lo usi per Servo e uno per IR... timer finiti. Quindi non potrai usare altre lib che usano un timer, ad esempio la tone().

https://arduino-info.wikispaces.com/Timers-Arduino

stefno:
sto provando ha scrivare un programma in cui comando un piccolo servo sotto input di un'IR, il programma l'ho finito ma non funziona, avete qualche idea?

Ma che significa "non funziona", esattamente?