Go Down

Topic: motore passo passo comandato a infrarossi (Read 182 times) previous topic - next topic

manzovti

Apr 16, 2018, 09:54 pm Last Edit: Apr 17, 2018, 06:31 am by manzovti
Buongiorno a tutti, mastico arduino praticamente 0. Ho chiesto a un amico appassionato di elettronica di costruirmi un dispositivo con motore passo passo comandato dal telecomando della tv tramite infrarossi.

Qui da dove ho preso tutte le info dell hardware e software.
https://www.waste.org/~knobs/arduino_remote_stereo_volume_control.html

Il tutto funziona come da progetto, ma vorrei cambiare il settaggio. Mi spiego:
a ogni pressione dei tasti Vol Up e Vol Down, il motorino gira degli step impostati.
Mi servirebbe che invece, tenendo premuto il singolo pulsante, il motorino giri costante fino al rilascio del pulsante stesso. Insomma, proprio come si interfaccia col volume del televisore.

Qualcuno ha qualche di idea di dove intervenire?
Copio qui la programmazone, che è la stessa del link.

Ringrazio fin da subito chi mi può dare un aiuto.
Grazie


Code: [Select]
#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include <IRremote.h>

// Create the motor shield object with the default I2C address
Adafruit_MotorShield AFMS = Adafruit_MotorShield();

// Connect stepper motor with 32 steps per revolution
// to motor port #1 (M1 and M2)
Adafruit_StepperMotor *myMotor = AFMS.getStepper(32, 2);

/*----- Variables, Pins -----*/
int receiver = 2; // Signal Pin of IR receiver to Arduino Digital Pin 2

/*----( Declare objects )----*/
// Setup of proper sequencing for Motor Driver Pins
// In1, In2, In3, In4 in the sequence 1-3-2-4

IRrecv irrecv(receiver);    // create instance of 'irrecv'
decode_results results;     // create instance of 'decode_results'

void setup()
{
  irrecv.enableIRIn(); // Start the receiver
  Serial.begin(9600);  // set up Serial library at 9600 bps
  AFMS.begin();  // create with the default frequency 1.6KHz
  myMotor->setSpeed(200);  // 200 rpm   
}


//main loop to listen for remote IR signal and move motor

void loop()
{
  if (irrecv.decode(&results)) // have we received an IR signal?

  {
    switch (results.value)

    {

      case 0x20DFC03F: // UP button pressed
        myMotor->step(17, BACKWARD, SINGLE); //I need backward motion to turn my volume knob up
        //delay(200);  this was in the original code but I decided no delay was better
        myMotor->release(); //saves stepper from using voltage and getting hot at rest
        break;

      case 0x20DF40BF: // DOWN button pressed
        myMotor->step(17, FORWARD, SINGLE);
        //delay(200);
        myMotor->release();
        break;

    }

    irrecv.resume(); // receive the next value
  }


}/* -end main loop - */


MatteoDerrico


Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

PS il programma va inserito con l'apposito tag </>, grazie :)

MD

P.S.: Qui una serie di link utili, NON necessariamente inerenti alla tua domanda:
- serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- pinout delle varie schede by xxxPighi: Pinout
- link generali utili: Link Utili

gpb01

#2
Apr 16, 2018, 11:44 pm Last Edit: Apr 16, 2018, 11:46 pm by gpb01
>manzovti: come ti ha già detto MatteoDerrico, DOPO aver fatto la presentazione, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo.

Guglielmo
Search is Your friend ... or I am Your enemy !

manzovti

editato,
mi presenterò nell apposita sezione quanto prima.
grazie

manzovti

presentato. mi metto in attesa incrociando le dita.
:lasperanzaèlultimaamorire

Go Up