Show Posts
Pages: [1] 2 3
1  International / Generale / Re: controllo del mouse con arduino leonardo on: August 05, 2014, 01:27:24 am
Scusatemi per aver postato,l'argomento nella sezione sbagliata, non è stato voluto, ma un errore di distrazione, volevo scrivere nella sezione software, ma ho cliccato male.
Per quanto riguarda la presentazione, non voglio essere ne scorretto,ne maleducato, o tantomeno fare polemiche... Io sono iscritto da un paio di anni, e la presentazione mi pare di averla fatta a suo tempo... se così non fosse ed ho mancato in questo, ditemelo e per educazione presso tutta la comunità provvederò riscrivere una presentazione... anche se da come sò, non è ne obbligatorio farla ne tanto meno, scrivere le proprie competenze in elettronica o in programmazione. Come la vedo io il forum serve ha chiarire delle situazioni, sia che un utente è un ingegnere elettronico, sia che sia uno studente o un amatore...


Nel post chiedevo semplicemente se l'implementazione del controllo del mouse fatta con arduino leonardo, fosse compatibile anche sotto sistemi operativi windows... non so cosa centrano link generici su come fare vari collegamenti ad arduino e pinout vari...non capisco...
Buona Giornata
2  International / Generale / controllo del mouse con arduino leonardo on: August 04, 2014, 03:23:20 pm
Salve, volevo sapere se il controllo del mouse , tramite arduino leonardo, come descritto in questo esempio (http://arduino.cc/en/Tutorial/MouseContinuousDrawing) funziona solo sotto sistemi operativi linux oppure funziona anche su windows.  Grazie!
3  Products / Arduino Due / compatibility libraries on: April 08, 2014, 03:01:43 pm

Hi guys, I wanted to know if the libraries Arduino one, for example: liquid-crystal, midi, shiftin, shitout etc. 
are compatible with Arduino due?
thanks smiley
4  International / Software / arduino shift in con cd4021 on: October 18, 2013, 05:22:07 am
salve a tutti.
sto cercando di realizzare un piccolo progettino il quale deve rilevare lo stato di 8 pulsanti, tramite shift register in ingresso. lo stato dei pulsanti(on /off) viene visualizzato da dei led .

ho provato ad implementare tramite due script eseguiti su arduino mega2560.
primo tentativo.
 
Code:
// prova acquisizione valori di 8 tasti su shifregister

const int data=22;
const int clock=23;
const int latch=24;
int temp=0;
int cont=0;
int attuale=0;
int lettura=0;
const int ledPin[8] = { 40, 41, 42, 43, 44, 45, 46, 47 };
byte ledState[8] = {LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW};
byte buttonState[8]={LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW};//state of the first 8 buttons
byte buttonRead[8]={LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW};
int i=0;

byte letturaShift(int data,int clock);

void setup() {
  pinMode(data,INPUT);
  pinMode(clock,OUTPUT);
  pinMode(latch,OUTPUT);
   Serial.begin(9600);
  for (cont = 0; cont <= 7; cont++)
  {
    pinMode(ledPin[cont], OUTPUT);
  }
 
  for (cont = 0; cont <= 7; cont++)
  {
    digitalWrite(ledPin[cont],HIGH );
    delay(20);
    digitalWrite(ledPin[cont],LOW );
  }
}

void loop()
{
 
 
 digitalWrite(latch,HIGH);//gli ingressi paralleli entrano nel latch
 delayMicroseconds(0.2);
 digitalWrite(latch,LOW);// inibisco il latch

for(i=0;i<8;i++)
 {
   buttonRead[i]=letturaShift(data,clock);// leggo lo stato dello switch tramite funzione shift
   // aggiorno lo stato del pulsante
   if(buttonRead[i]!=buttonState[i]) // se la lettura è diversa dall stato attuale
   {                               
     buttonState[i]=!buttonState[i];//commuto lo stato del pulsante
     Serial.print(i);// stampo il numero dello stato che è cambiato
   }
 }
 
 Serial.print("-------------------");
 
  for (i=0; i<8; i++)
 {digitalWrite(ledPin[i],buttonState[i]);}// stampo a led lo stato dei pulsanti
 
 
 
}
// funzione di shift
byte letturaShift(int data,int clock)
{
 digitalWrite(clock,LOW);// impongo la transizione del clock a basso
 delayMicroseconds(0.2);
 temp=digitalRead(data);// leggo l'out dello shift register
 digitalWrite(clock,HIGH);// transizione alta del clock
 return temp;// ritorno il valore dello stato del led
 }

secondo tentativo
Code:
// prova acquisizione valori di 8 tasti su shifregister

const int data=22;
const int clock=23;
const int latch=24;
int cont=0;
int attuale=0;
int lettura=0;
const int ledPin[8] = { 40, 41, 42, 43, 44, 45, 46, 47 };
int ledState[8] = {LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW};
int buttonState[8]={LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW};;  //state of the first 8 buttons
int i=0;
void setup() {
  pinMode(data,INPUT);
  pinMode(clock,OUTPUT);
  pinMode(latch,OUTPUT);
   Serial.begin(9600);
  for (cont = 0; cont <= 7; cont++)
  {
    pinMode(ledPin[cont], OUTPUT);
  }
 
  for (cont = 0; cont <= 7; cont++)
  {
    digitalWrite(ledPin[cont],HIGH );
    delay(20);
    digitalWrite(ledPin[cont],LOW );
  }
}

void loop()
{
 
 delay(50); //delay tra due acquisizioni dati
 digitalWrite(latch,HIGH);// gli input paralleli entrano nel latch
 delayMicroseconds(20);
 digitalWrite(latch,LOW);// inibisco il latch
 lettura= shiftIn(data,clock,MSBFIRST);// funzione di shiftIn
 if(attuale!=lettura)// confronto la lettura con il byteattuale(lettura precedente)
 {attuale=lettura;} // se diverso sostituisco l'attuale con la lettura
  Serial.print(attuale);

  Serial.print("-------------------");
 
  for (i=0; i<7; i++)
 {
    if(bitRead(attuale,i)==1)//testo lo stato dei vari bit del byte letto
    {buttonState[i]=HIGH; // aggiorno lo stato del tasto
    digitalWrite(ledPin[i],buttonState[i]);}// stampo lo stato sul led
    else
    {buttonState[i]=LOW;// aggiorno lo stato del tasto
    digitalWrite(ledPin[i],buttonState[i]);}// stampo lo stato sul led
  }
 
 
}


problemi riscontrati.
nel primo esempio gli stati vengono stati vengono visualizzati bene e con un ottima reattività, tranne che per un pulsante esattamente l'ottavo che non viene letto, stampando il valore della seriale, il valore non viene acquisito nel byte letto dalla funzione shiftIn. non è un problema di collegamento perchè invertendo l'ordine nella funzione shiftIn da MSBFIRST a LSBFIRST, l'ottavo pulsante funziona ma l'ottavo bit non viene acquisito dalla funzione.

nel secondo tentativo, ho creato io una funzione shifIN, essa funziona nel modo corretto solo che è molto lento il tempo di reazione.

come posso risolvere? a livello implementativo, per il mio scopo i due approcci sono indifferenti, ma in entrambi qualcosa non funziona, sapete dirmi qualcosa??

nota: ho provato ad implementare la funzione shiftIn suggerita negli esempi del sito di arduino cc, ma essa ho le stesse caratteristiche del secondo esempio da me proposto.
 mi potete aiutare?
5  International / Hardware / Re: problema interfaccia midi arduino on: December 22, 2012, 01:26:54 pm
Ciao, considerando il fatto che con un altra interfaccia ti funziona e il problema è con la maudio, prova a scaricare il software MIOS studio, è una piccola interfaccia che ti permette di inviare e leggere i corrispettivi messaggi mandati dall'interfaccia midi. magari riesci a capire cosa invia di diverso la maudio rispetto alla edirol
6  International / Software / Re: key matrix on: December 11, 2012, 02:14:23 pm
ok, ma sapete come fare a controllare un tasto, l'uno dopo l'altro.....che voi sappiate c'è una funzione apposita in keymatrix oppure lo devo fare con dei cicli anadando a scorrere pin to pin , i pin della tastiera?
7  International / Software / key matrix on: December 05, 2012, 04:25:12 pm
Salve
Sto giocando da un pò di tempo con un tastierino a matrice e dei led.
ho realizzato un piccolo codice che mi fa accedendere o spegnere  il led associato al tasto del tastierino, nel seguente modo:
premo il tasto, led accesso, ri premo il tasto, led spento.

vi posto il codice:
Code:
#include <Keypad.h>
const byte ROWS = 2; // two rows
const byte COLS = 3; // Three columns
// Define the Keymap
char keys[ROWS][COLS] = {
  {1,2,3},
  {4,5,6}
  
};
int stato[7]={LOW,LOW,LOW,LOW,LOW,LOW,LOW};
int led[7]={13,32,30,28,26,24,22};
// Connect keypad ROW
byte rowPins[ROWS] = {2,3};
// Connect keypad COL
byte colPins[COLS] = {4,5,6};
 // Create the Keypad
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );


void setup()
{
 int a=0;
 for(a=0;a<7;a++)
 { pinMode(led[a], OUTPUT);
 }
  
}



void loop()
{
  char key = kpd.getKey();
  if(key)  // Check for a valid key.
  {
    if(stato[key]==LOW)
    {stato[key]=HIGH;}
    else
    {stato[key]=LOW;}
  }
int i=0;
for(i=0;i<7;i++)
 { digitalWrite(led[i],stato[i]); }

}

volevo chiedere nel caso che voglia fare un codice che faccia questo:
premo un tasto(lasciandolo premuto) il led si accende, lascio il tasto, il led si spegne. sapete darmi una mano ad implementarlo...
vi ringrazio!
8  International / Software / Re: matrix key on: November 03, 2012, 08:03:23 am
GRazie UWE della dritta... non sapevo si potesse monitorare la seriale in questo modo....
Comunque dal monitor seriale ho notato che premendo lo sw corrispondende allo "0", la seriale non trametteva nessun dato, mentre per gli altri si.
ho risolto, togliendo lo "0" dai valori della matrice key. in  questo modo funziona correttamente.
presto inserisco  il codice corretto, nel caso qualcuno possa trovarne giovamento.
9  International / Software / Re: matrix key on: November 01, 2012, 07:33:56 pm
come faccio a farmelo  stampare?
10  International / Software / matrix key on: November 01, 2012, 11:08:57 am
salve ragazzi, sto facendo un piccolo sketch, per imparare ad utilizzare i tastierini a matrice
mi sono servito della keypad.h
 ho una matrice 2 righe ,3 colonne  e 6 led.
quello che voglio realizzare è semplice, spingo un tasto si accende il led corrispondente, ri-premo il tasto e il led corrispondente si spegne.
questo è il codice che ho prodotto
Code:
#include <Keypad.h>
const byte ROWS = 2; // two rows
const byte COLS = 3; // Three columns
// Define the Keymap
char keys[ROWS][COLS] = {
  {0,1,2},
  {3,4,5}
 
};
int stato[6]={LOW,LOW,LOW,LOW,LOW,LOW};
int led[6]={32,30,28,26,24,22};
// Connect keypad ROW
byte rowPins[ROWS] = {2,3};
// Connect keypad COL
byte colPins[COLS] = {4,5,6};
 // Create the Keypad
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );


void setup()
{
 int a=0;
 for(a=0;a<7;a++)
 { pinMode(led[a], OUTPUT);
 }
 
}



void loop()
{
  char key = kpd.getKey();
  if(key)  // Check for a valid key.
  {
    if(stato[key]==LOW)
    {stato[key]=HIGH;}
    else
    {stato[key]=LOW;}
  }
int i=0;
for(i=0;i<6;i++)
 { digitalWrite(led[i],stato[i]); }
}
allora, il codice fa quello che deve per i primi 5 switch e led, se premo il 6° sw il 6° led non si accende.
ho provato a ricontrollare il codice, ma non riesco a capire cosa non va, mi date una mano??
saluti! e grazie per l'attenzione!
11  International / Software / Re: sw e led on: October 06, 2012, 02:08:24 pm
grazie a tutti per le risposte.
ho effettuato queste modifiche ( varibili di stato, val prima del setup e antirimbalso), ma non funziona.
cosa c'è che non va??? vi allego il codice!
Code:
int sw=44;
int led=40;
 int stato=LOW;
 int val=LOW;
 void setup()
 {
   pinMode(sw,INPUT);
   pinMode(led,OUTPUT);
   
 }
 
 void loop()
 {

 val=digitalRead(sw);
 if(val==HIGH)
 {delay(10);
 if(val==HIGH && stato==LOW)
 {stato=HIGH;
 digitalWrite(led,HIGH);}
 if(val==HIGH && stato==HIGH)
 {stato=LOW;
 digitalWrite(led,LOW);}
 }
 
 }
12  International / Software / sw e led on: October 06, 2012, 12:00:35 pm
salve ragazzi sto realizzando un piccolissimo firmware di prova, ma qualcosa non mi quadra.
vorrei che quando premo uno switch(sw) una volta , il del si accenda e rimanga quale fino a che non ri-premo il tasto, pare una cosa facilissima ma non lo riesco a fare.
vi posto lo sketch
Code:
int sw=44;
int led=40;
 void setup()
 {
   pinMode(sw,INPUT);
   pinMode(led,OUTPUT);
   
 }
 
 void loop()
 {
 int stato=LOW;
 int val=LOW;
 val=digitalRead(sw);
 if(val==HIGH&&stato==LOW)
 {stato=HIGH;
 digitalWrite(led,HIGH);}
 if(val==HIGH&&stato==HIGH)
 {stato=LOW;
 digitalWrite(led,LOW);}
 
 
 }

con questo programma:
 il led rimane accesso sempre,  quando premo il tasto si spegne, se lo rilascio, il led si riaccende.
mi aiutate?
grazie!
13  International / Software / Re: problema shift in con 74hc165 shift out con 74hc595 on: October 04, 2012, 05:11:21 pm
grazie pelletta! ho risolto!
mi era proprio sfuggito
buona serata!
14  International / Software / problema shift in con 74hc165 shift out con 74hc595 on: October 04, 2012, 04:31:51 pm
salve a tutti
volevo esporvi un problema a cui non riesco a venire a capo!
il mio intento, come da oggetto, è quello di leggere lo stato di 8 tasti con l'ausilio del 74hc165 e di verificare il loro stato con l'74hc595
vi allego il codice:
Code:
// test shift register in input 74hc165 e test shift register in out
//  scansiona 8 tasti dal 165, e riproduce il loro stato su 8 led collegati al 595
int dout=4;//data out pin 14 del 595
int clo=2;// clock pin 11 del 595
int lo=3;// latch pin 12 del 595

int din=8;//data in pin 9 del 165
int cin=2;//clock pin 2 del 165
int lin=3;//latch pin 1 del 165
 
void setup()
{ //pin 595
  pinMode(clo,OUTPUT); 
  pinMode(dout,OUTPUT);
  pinMode(lo,OUTPUT);
  //pin 165
  pinMode(cin,OUTPUT);
  pinMode(din,INPUT);
  pinMode(lin,OUTPUT);
}
int READ(int dat,int cl)  //funzione di lettura shift register
{ int val;
   val= digitalRead(dat);  //lettura dato
  digitalWrite(cl,LOW);
  digitalWrite(cl,HIGH);  //clock
  digitalWrite(cl,LOW);
  return val;             //ritorna il valore letto
}


void Stampabasso(int dat,int cl) //stampa bit basso
{ digitalWrite(dat,LOW);
  digitalWrite(cl,LOW);
  digitalWrite(cl,HIGH);
  digitalWrite(cl,LOW);
}

void Stampaalto(int dat,int cl)  //stampa pin alto
{ digitalWrite(dat,HIGH);
  digitalWrite(cl,LOW);
  digitalWrite(cl,HIGH);
  digitalWrite(cl,LOW);
}


void loop()
{
  int i=0;
  int arr[8]={0,0,0,0,0,0,0,0}; //array lettura, azzerato
  digitalWrite(lin,HIGH);
  delay(150);
  digitalWrite(lin,LOW);  //faccio entrare gli ingressi nel 165
  digitalWrite(lin,HIGH);
 
  for(i=0;i<8;i++)
  {
    arr[i]=READ(din,cin);  //inserisce nell'array il valore del dato letto
  }
 
 
 
  // scrittura
  digitalWrite(lo,LOW);
  digitalWrite(lo,HIGH);
  digitalWrite(lo,LOW);
  delay(20);

{for(i=0;i<8;i++)
 {if(arr[i]==1)
   {Stampaalto(dout,clo);}
  else
   {Stampabasso(dout,clo);}
 }

  }
  delay(150);
 
}
 

Nella parte di scrittura del 595 non ho problemi, ho provato separatamente le funzioni, e pare girare bene.

non riesco a far girare la parte dello shift in, ovvero anche se cambio lo stato dei tasti i led rimangono sempre e tutti accesi.
cosa sbaglio!???
grazie!




15  International / Software / Re: errore avr-g++: CreateProcess: No such file or directory on: September 20, 2012, 07:56:59 am
ciao
sul mio pc, ho attaccato la usb per il mouse e un altra usb per arduino, ho una scheda wifi via pci...ho la porta seriale, ma è vuota

cosa intendi per "sicuro di non avere altre porte seriali? (sul mio windows è la COM3)"???

Pages: [1] 2 3