righetz
| Inviato il: 28/08/2016 10:52:30
|
Se sei alle prime armi con arduino la prima cosa da fare è scaricare l'IDE per lo sviluppo, sta già bella pronta dal sito di arduino.
La libreria per la gestione dei pin con l'interrupt PinChangeInt la allego a questo messaggio.
Questo un primo abbozzo:
//http://www.energialternativa.info/Public/NewForum/Discussione.php?213940
//
//
//ATTENZIONE:
//
//CC BY-NC-SA 4.0
//Uso non commerciale, modificabile, con obbligo di condivisione-
//http://creativecommons.org/licenses/by-nc-sa/4.0/deed.it
//***********--Librerie utilizzate--****************************************************
#include <LiquidCrystal.h> //Libreria per gestire LCD
#include <PinChangeInt.h> //Libreria per gestire gli interrupt
//***********--Definizione Pin --*****************************************************
LiquidCrystal lcd(6,7,2,3,4,5); //assegnazione pin per gestione lcd 16x2
#define Sensor 6 //Assegna il Pin 6 come ingresso Anemometro
//*************** definizione variabili ***************************
const float raggio = 66.4; // raggio dell'anemometro in mm in possesso
int Numero_impulsi_giro = 1; //Inserire tipo di sensore anemometro
const float Pi = 3.141593; // Pigreco
unsigned long durata,tempo_trascorso;
float Metris,Kmora,rpm,velsec;
void setup() {
Serial.begin(57600); //inizializzazione seriale
pinMode(Sensor, INPUT) ; //dichiarazione sensore anemometro come ingresso
digitalWrite(Sensor, HIGH); //dichiarazione sensore anemometro HIGN=anemometro in rotazione
PCintPort::attachInterrupt(Sensor, anemometro, RISING); // assegnazione interrupt alla funzione anemometro
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0, 0);
}
void loop() {
lcd.setCursor(0,0);
lcd.print("ms ");
lcd.setCursor(4, 0);
lcd.print(Metris);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Kmh ");
lcd.setCursor(4, 1);
lcd.print(Kmora);
lcd.print(" ");
}
void anemometro() {
durata=millis()-tempo_trascorso; //misura il tempo tra due impulsi del sensore
tempo_trascorso=millis();
Metris= 2*Pi*raggio/durata*Numero_impulsi_giro; //calcolo della velocità del vento in metri secondo
Kmora = Metris*3.6; //calcolo velocità chilometri orari
}
Ho messo come raggio dell'anemometro 60 mm. Ovviamente sarà da mettere il valore corretto dell'anemometro di Donato.
Aggiornamento: nel codice è stato arriornato il raggio dell'anemometro a 66.4 mm, misura reale
Modificato da righetz - 29/08/2016, 09:34:06
--------------- Chi non si indebita fa la rabbia degli usurai
|