Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Arduino

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[11] Re: Arduino

Messaggioda Foto Utentedaniele1996 » 9 gen 2014, 19:30

Ciao, io ho un arduino, tuttavia ti consiglio di rivedere il codice. se vuoi esser sicuro di avere i limiti impostati da te, devi usare una funzione chiamata map: ( map(value, fromLow, fromHigh, toLow, toHigh) )
Quindi:
Codice: Seleziona tutto
int sensorPin = A0;   //potenziometro collegato ingresso analogico 0
int ledPin = 12;      //LED collegato a uscita digitale 12
int sensorValue;      //variabile per impostare il valore del potenziometro

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);       //imposto la comunicazione seriale
}

void loop() {
  sensorValue = analogRead(sensorPin);    //leggo il valore del potenziometro
  Serial.println(sensorValue, DEC);
  sensorValue = map(sensorValue , 0, 1023, 22, 25 );
  if(sensorValue == 25){
    digitalWrite(ledPin, HIGH);           //accende il LED quando il valore è maggiore di 900
  }
  else if (sensorValue == 22F) {
    digitalWrite(ledPin, LOW);            // spegne il LED quando il valore scende al di sotto di 200
  }
}


ecco come realmente si usano le porte analogiche, in questo modo hai dei valori compresi tra 22 e 25 che in questo caso è cio che interessa a te, se devi impostare un ritardo devi usare sleep( <millisecondi> );
ci tengo a ricordarti che questo sistema (arduino) non ha uno schedulatore, pertanto la lettura e/o scrittura nelle porte del microcontrollore vengono fatte in modo sequenziale. Per altre spiegazioni chiedimi pure :)
Avatar utente
Foto Utentedaniele1996
610 3 8 11
Sostenitore
Sostenitore
 
Messaggi: 1554
Iscritto il: 29 ago 2011, 11:29

Precedente

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti