un salutto a tutti
come ho detto che mi sto riprendendo di nuovo la programmazzione i micro
non chiedo di farmi papa pronta ma di dare le dritte come fare e se esiste
un sketch dove posso vedere routine i studiare funzionamento.
di cosa si trata
ho usato rpm sketch e lo ampliato con altri ingressi
1, voglio fare che in assenza segnale mi scatta un allarme che
e collegato per tutti e tre ingressi ad es. se non ce segnale
scata allarme e mi fa lampeggi sull lcd alla stringa dedicata per quell ingresso
2, quando tutto funziona e io voglio fermare che si interompe funzionamento ,che
non scatta allarme fin che e fermo, quando interrutore ON continui a funzionare
3, quando ce allarme lo vedo come lampeggio lcd sulla sringa sistemo problema e faccio
reset e riprendo funzionamento
sono tre nastri che portano semi in secchettini e se non ci sono semi su uno dei nastri
che mi scatti un allarme
vi posto il code e fotto della scheda che per adesso e in sospeso e la devo ancora
modificare per discorso soprascritto
grazi in anticipo
const int frqPin = 2; //in Pin sensore sens1
const int frqPin1 = 3; //in Pin sensore sens2
const int frqPin2 = 4; //in Pin sensore sens3
const int oneSecond = 500; // Vreme 0,5 seconde tempo 0,5 sec
int frqPinState = LOW;
int frq = 0;
int prevFrqPinState = LOW;
int frqPinState1 = LOW;
int frq1 = 0;
int prevFrqPinState1 = LOW;
int frqPinState2 = LOW;
int frq2 = 0;
int prevFrqPinState2 = LOW;
unsigned long timer = 0;
unsigned long timer1 = 0;
unsigned long timer2 = 0;
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
void setup(){
//--------------------------------Start------------------------------------------
lcd.init();
lcd.backlight();
lcd.begin(16, 2);
delay(1000); // Pauza 1 secund
lcd.clear();
Serial.begin(2400);
pinMode(frqPin, INPUT_PULLUP); //Declared Pin 2 as Input
pinMode(frqPin1, INPUT_PULLUP); //Declared Pin 3 as Input
pinMode(frqPin2, INPUT_PULLUP); //Declared Pin 4 as Input
}
void loop()
{
//=============================Sens1===========================================
frqPinState = digitalRead(frqPin); //Reads State of Input Pin
if (frqPinState == LOW) prevFrqPinState = LOW; //Creates a previos state
if (frqPinState == HIGH && prevFrqPinState == LOW) //Pulses Counter
{
prevFrqPinState = frqPinState;
frq++;
}
if (millis() - timer > oneSecond) //Time Counter
{
timer = millis(); //Resets Time
Serial.println(frq = frq * 1); //stampa Frequency
lcd.setCursor(0, 0);
lcd.print("1:");
lcd.print(frq);
lcd.print(" ");
frq = 0; //Resets Frequency
//==============================Sens2============================================
}
frqPinState1 = digitalRead(frqPin1); //Reads State of Input Pin
if (frqPinState1 == LOW) prevFrqPinState1 = LOW; //Creates a previos state
if (frqPinState1 == HIGH && prevFrqPinState1 == LOW) //Pulses Counter
{
prevFrqPinState1 = frqPinState1;
frq1++;
}
if (millis() - timer1 > oneSecond) //Time Counter
{
timer1 = millis(); //Resets Time
Serial.println(frq1 = frq1 * 1); //stampa Frequency
lcd.setCursor(5, 0);
lcd.print("2:");
lcd.print(frq1);
lcd.print(" ");
frq1 = 0; //Resets Frequency
//===============================Sens3=============================================
}
frqPinState2 = digitalRead(frqPin2); //Reads State of Input Pin
if (frqPinState2 == LOW) prevFrqPinState2 = LOW; //Creates a previos state
if (frqPinState2 == HIGH && prevFrqPinState2 == LOW) //Pulses Counter
{
prevFrqPinState2 = frqPinState2;
frq2++;
}
if (millis() - timer2 > oneSecond) //Time Counter
{
timer2 = millis(); //Resets Time
Serial.println(frq2 = frq2 * 1); //stampa Frequency
lcd.setCursor(10, 0);
lcd.print("3:");
lcd.print(frq2);
lcd.print(" ");
frq2 = 0; //Resets Frequency
}
}