Pages: [1] 2   Go Down
Author Topic: Casino Totale  (Read 1188 times)
0 Members and 1 Guest are viewing this topic.
Italy
Offline Offline
Full Member
***
Karma: 0
Posts: 158
Arduino = Tecnologia
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...si, casino totale (...e non intendo il film parodia di casino royale!)
bensì il mio sketch che posto qui da voi:
Code:

 int valoretarato;

  for(int i = 0; i<=255; i++)
  {
    spwm(i, Led_IR);
    delay(1);
    int sensorValue = digitalRead(Foto_TR);
    if (sensorValue == 1)
    {
      valoretarato = i;
    }
    digitalWrite(Led_IR, 0);
  }
  delay(500);
 Persistentspwm(i, Led_IR); //richiama funzione per pwm simulato


//  setup_watchdog(9);
}


void loop()
{
  if (f_wdt==1)
  {  // wait for timed out watchdog / flag is set when a watchdog timeout occurs
    f_wdt=0;       // reset flag
    
    //CODE HERE
    
    unsigned long currentMillis = millis();
    int sensorValue = digitalRead(Foto_TR);
    sensorValue = !sensorValue;
      if (sensorValue == 1)
  {
    DOA++;
   if(DOA > 5)
  {
    analogWrite(Led_1, 64);
    analogWrite(Led_2, 255);
    delay(800);
    
    analogWrite(Led_1, 0);
    analogWrite(Led_2, 0);
    }
  }

  if (DOA >= 5)
  {
 //do something


  }
system_sleep(); //addormento il Tiny.

Il problema che devo risolvere è il seguente:

Allora: una volta calibrato il sensore come faccio nel setup(), devo leggerlo (e in questo caso invertire la sua uscita), ma proprio qui ci casca l'asino, ho collegato l'output del fotosensore al pin 3 (ovvero il 2) del mio attiny, e nel setup lo leggo come input...ecco lo schema usato:



Poi però una volta programmato l'attiny funziona in maniera "anomala"...sembra che il pin 2 (ovvero il 3) non riesca a leggere il mio input digitale...ho provato a cambiare tiny, ma nulla da fare, il problema persiste...

Avete idee?
...magari è una stupidata...ma ci ho perso l'intero pomeriggio...
Grazie.
« Last Edit: January 22, 2013, 06:10:38 pm by fardox » Logged

Se ritieni che la mia risposta ti abbia aiutato a risolvere il problema non esitare! ringraziami dandomi il Karma! smiley-wink
_-_-_-_-_-_-_-_-_-_-_-

0
Offline Offline
Faraday Member
**
Karma: 30
Posts: 2905
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm.............mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm......................mmmmmmmmmmmmmmmmmmmmmmmmm

Basta.

Il codice dello scketch non è completo.

Leggi in digitale sul pin analogico, ma le tue intenzioni sono di leggere lo stato digitale o la variazioni analogiche sul pin A0 che si vengono a creare dovute al fatto che piloti il led in PWM. Il PWM a cosa ti serve, vuoi variare la luminosità del led interno a quel componente schematizzato in foto che sembra un accoppiatore ottico. No non penso perchè quel led è alimentato in modo fisso, quindi non ci sarà cambio di stato in uscita su A0, dove troverai sempre un livello LOW.

Spiega quali sono i tuoi obbiettivi.

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Italy
Offline Offline
Full Member
***
Karma: 0
Posts: 158
Arduino = Tecnologia
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora:


1.) piloto in pwm il pin del led ir del sensore finché il sensore non visualizzare dopo di che setto il led con la luminosità trovata.
2.) poi dal pin 3 di attiny leggo lo stato digitale del sensore...ma qui ho dei problemi

help!!!   smiley-roll

Logged

Se ritieni che la mia risposta ti abbia aiutato a risolvere il problema non esitare! ringraziami dandomi il Karma! smiley-wink
_-_-_-_-_-_-_-_-_-_-_-

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quel codice è incompleto.
Le info che dai sono inaccurate: parli di un "attiny" generico, quale? Parli di pin 3 poi però dici che è il 2 poi parli di A0.

http://arduino.cc/forum/index.php/topic,91560.0.html
Logged


Italy
Offline Offline
Full Member
***
Karma: 0
Posts: 158
Arduino = Tecnologia
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ecco la pedinatura del Tiny85:




Il pin2 è di fatto il PB3...ecco cosa intendevo dire.


hai qualche idea su come risolvere?
Logged

Se ritieni che la mia risposta ti abbia aiutato a risolvere il problema non esitare! ringraziami dandomi il Karma! smiley-wink
_-_-_-_-_-_-_-_-_-_-_-

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10448
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

1.) piloto in pwm il pin del led ir del sensore finché il sensore non visualizzare dopo di che setto il led con la luminosità trovata.

chi ci capisce è bravo  smiley-evil
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ripeto: lo sketch è incompleto.
Inoltre i dettagli che ci hai dato sul problema sono insufficienti. Ad esempio: come hai collegato il tutto?

Per favore, sii più preciso.
Logged


Italy
Offline Offline
Full Member
***
Karma: 0
Posts: 158
Arduino = Tecnologia
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...è l'autocorrettore del telefono che ogni tanto scrive degli strafalcioni smiley-grin

Allora, ecco lo sketch di prova completo, modificato e senza alcuni pezzi superflui:

Code:
const int Foto_TR = 3; //Pin Fototransistor
int UltimoStato_TR = LOW;
int StatoTR;
  int Number;
long lastDebounceTime = 0;
long debounceDelay = 100;
const int Led_1 = 0; //Pin PWM Attiny
void setup() {
  // put your setup code here, to run once:
 pinMode(Foto_TR, INPUT);
}

void loop() {

 
 
      int reading_Tr = digitalRead(Foto_TR);
    if (reading_Tr != UltimoStato_TR)
    {
      lastDebounceTime = millis();
      if (reading_Tr == LOW)
      {
        Number++;
      }
    }
    if ((millis() - lastDebounceTime) > debounceDelay)
    {
      StatoTR = reading_Tr;

    } 
    UltimoStato_TR = reading_Tr;

    for(int i = 0; i< Number; i++)
    {
      analogWrite(Led_1, 255);
      delay(300);
      analogWrite(Led_1, 0);
     
   
  }
 // delay(1000);
}

Il tutto è collegato in questo modo:
Ma invece che mandare l'output del sensore al pin A0 di arduino lo mando al pin PB3 del mio Tiny. nulla di complicato...

Logged

Se ritieni che la mia risposta ti abbia aiutato a risolvere il problema non esitare! ringraziami dandomi il Karma! smiley-wink
_-_-_-_-_-_-_-_-_-_-_-

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

E quel sensore che cosa dà in output? Perché se nello schema lo collegano ad un pin analogico, tu quel pin lo leggi in digitale? Non è che forse la tensione che fornisce resta nel campo indefinito dei valori per cui l'Attiny non riesce a leggerlo come stato HIGH?
Logged


Italy
Offline Offline
Full Member
***
Karma: 0
Posts: 158
Arduino = Tecnologia
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No, con arduino lo leggo correttamente in digitale, senza avere problemi...non so che fare
Logged

Se ritieni che la mia risposta ti abbia aiutato a risolvere il problema non esitare! ringraziami dandomi il Karma! smiley-wink
_-_-_-_-_-_-_-_-_-_-_-

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sembra tutto giusto. D3 è il pin PB3. Hai provato a collegare direttamente il pin a VCC per vedere se il pin legge correttamente?
Logged


Italy
Offline Offline
Full Member
***
Karma: 0
Posts: 158
Arduino = Tecnologia
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si, lo legge correttamente!
Logged

Se ritieni che la mia risposta ti abbia aiutato a risolvere il problema non esitare! ringraziami dandomi il Karma! smiley-wink
_-_-_-_-_-_-_-_-_-_-_-

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si, lo legge correttamente!
Allora è il sensore.
Logged


Tuscany
Offline Offline
Edison Member
*
Karma: 66
Posts: 1973
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

io non capisco un paio di cose

1) Nello schema il led e' collegato a +5V , ma forse e' connesso al pin0
2) Non e' dichiarato il Pin0 come output
3) Leggi il valore su pin3, che a occhio e' sempre HIGH
4) accendi e spegni il LED
5) Rileggi il valore sul pin3 ... che sara' sempre HIGH

Se invece il Led e' collegato a +5V
Leggi sempre LOW

Logged

Italy
Offline Offline
Full Member
***
Karma: 0
Posts: 158
Arduino = Tecnologia
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...Ho risolto, il problema era dovuto dal fatto che nell'immagine il pin sul collettore del fototransistor non andava collegato ai 5V,

Gli altri problemi a livello di codice li sto piano piano risolvendo...Scusate se nelle spiegazioni sono stato "ambiguo" smiley-grin


Grazie!
Logged

Se ritieni che la mia risposta ti abbia aiutato a risolvere il problema non esitare! ringraziami dandomi il Karma! smiley-wink
_-_-_-_-_-_-_-_-_-_-_-

Pages: [1] 2   Go Up
Jump to: