Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define START 2
- #define RELAY 3
- #define MAIN_ON 4
- #define HEAT_ON 5
- #define BUZZER 6
- // Tempi saldatura (millisecondi)
- #define TMIN 2000
- #define TMAX 20000
- // Tempi buzzer (millisecondi)
- #define TON 300
- #define TOFF 100
- unsigned long timeOn = millis(), startTime = 1000;
- bool risingEdge = false;
- unsigned int nBuz = 0;
- void setup() {
- Serial.begin(9600);
- Serial.println("START");
- pinMode(START, INPUT_PULLUP);
- pinMode(RELAY, OUTPUT);
- pinMode(MAIN_ON, OUTPUT);
- pinMode(HEAT_ON, OUTPUT);
- pinMode(BUZZER, OUTPUT);
- digitalWrite(HEAT_ON, HIGH);
- digitalWrite(MAIN_ON, HIGH);
- digitalWrite(BUZZER, LOW);
- }
- void loop() {
- if((digitalRead(START) == LOW) && (!risingEdge)){
- risingEdge = true;
- delay(100); // Semplice antirimbalzo dello switch
- // Con il potenziometro imposti un tempo compreso tra TMIN e TMAX milllisecondi
- timeOn = map(analogRead(A0), 0, 1023, TMIN, TMAX);
- startTime = millis();
- nBuz = 0;
- Serial.print("Start delay timer of ");
- Serial.print(timeOn/1000);
- Serial.println(" seconds.");
- }
- if((millis() - startTime <= timeOn) && risingEdge){
- digitalWrite(RELAY, LOW);
- digitalWrite(HEAT_ON, HIGH);
- }
- else{
- digitalWrite(RELAY, HIGH);
- digitalWrite(HEAT_ON, LOW);
- if(risingEdge){
- while(nBuz<3){
- digitalWrite(BUZZER, HIGH);
- delay(TON);
- digitalWrite(BUZZER, LOW);
- delay(TOFF);
- nBuz++;
- }
- }
- }
- if(digitalRead(START) == HIGH) {
- risingEdge = false;
- digitalWrite(RELAY, HIGH);
- digitalWrite(HEAT_ON, LOW);
- digitalWrite(BUZZER, LOW);
- }
- }
Add Comment
Please, Sign In to add comment