Problema progetto arpa laser

Salve a tutti, sono nuovo su questo forum e alle prime armi con Arduino. Stomdviluppando un’arpa laser com il semplice meccanismo fotoresistenza -laser-dito che interrompe il fascio di luce. Sono riustito a far entrare arduino come midi e a farlo comunicare con Ableton, quindi ora quando passo il dito davanti al laser il problema è che suona la nota ogni 10ms cioè ogni volta che ripete il void loop, mentre io vorrei che suonasse solo una volta poi ritorna ad esserci il fascio e solo se ri-interrompo il fascio deve suonare, come se fosse un pulzante. Io ho messo if il valore della fotoresistenza è maggiore di 70 (cioè se si interrompe il fascio) allora suona la nota. Else ferma la nota. Solo che come detto prima ripete la nota ogni 10ms. So che sembra una domanda stupida ma qualcuno mi potrebbe aiutare?

  1. vai a presentarti nell'apposita sezione.
  2. meglio se metti lo sketch che usi, altrimenti tocca sparare a caso.
  3. metti anche uno schema dei collegamenti.

>Alepiano: ... come ti è stato detto da "fratt", 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.

Guglielmo

Ok fatto scusate

Ecco il codice

#include <ardumidi.h>



int fotor0=A0;
int fotor1=A1;


int luceA1;
int luceA0;

void setup()
{
  Serial.begin(115200);

}

void loop()
{
 
  luceA0=analogRead(fotor0);
  luceA1=analogRead(fotor1);

  
  if (luceA0>70 && statoA!=statoP && statoA==0)
  {
   
    
    midi_note_on(0, MIDI_C, 127);
  
  
    
  }

  else
  {
  // stop the Cminor chord
    midi_note_off(0, MIDI_C, 127);
    
  }
  


if (luceA1>70)  {
  midi_note_on(0, MIDI_E, 127);
}

  else {
    midi_note_off(0, MIDI_E, 127);
  }
  
   
  delay(100);
}

Domanda? A cosa ti servono statoA e statoP se nel loop non vengono mai modificati per fare qualcosa?

Ma tu, esattamente, cosa intendi per "arpa laser" ? ... quelle con il frame ed un sacco di fotoresistenze, o uno strumento con il galvo come questo o altri simili ?

zef quelli sono un errore... fai come se ci fosse solo if (luceA0>70)
comunque sì ci sono tante fotoresistenze con dei laser che vengoni "pizzicati" dalle dita come delle corde. Qualcuno mi saprebbe aiutare per quel problema?

devi avere una variabile di stato in modo che una volta suonata la nota e cambiato lo stato in high questa torni low solo se il fascio viene ripristinato, scritto al volo qualcosa del tipo:

boolean stato_nota = 0;

void loop()
{

if (luceA1>70 and stato == 0)
 {
  midi_note_on(0, MIDI_E, 127);
  stato_nota = 1;
  }

if (luceA1<70 and stato == 1)
 {
  midi_note_off(0, MIDI_E, 127);
  stato_nota = 0;
  }
}

Grazie mille perfetto!! Comunque come posso fare ad estendere gli ingressi analogici di arduino UNO? Devo per forza comprare il mega?

... perche' analogici ? ... non ti bastano i digitali ? ... tanto, se dimensioni correttamente i partitori delle fotoresistenze, dovresti riuscire ad avere livelli abbastanza costanti da darti high o low in modo piuttosto preciso ... :wink: