Arduino Switch Toggle


Model de cod Switch Toggle.
Cu acest cod se poate aprinde/stinge un led prin apăsarea unui buton push fără reținere conectat la o intrare.
La intrare vom avea o rezistență de 10k conectată la masă. Butonul este conectat între pin arduino și +5v.
Varianta toggle reprezintă aprinderea și menținerea ledului la apăsarea butonului. Pentru stingerea ledului este necesară o nouă apăsare a butonului. Ciclul se repetă la infinit.
În cod este adăugat și un debounce pentru evitarea apariției paraziților când este apăsat butonul.

Arduino Switch Toggle 1

int inPin = 8;         // the number of the input pin
int outPin = 13;       // the number of the output pin

boolean reading;           // the current reading from the input pin
boolean previous = LOW;    // the previous reading from the input pin

unsigned long debounce = millis();   // the debounce time

void setup()
{
  pinMode(inPin,  INPUT);
  pinMode(outPin, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  reading = digitalRead(inPin);
  Serial.println(reading);
 
  if (reading == HIGH && previous == LOW && millis()-debounce > 1000){ // debounce 1 sec.
        Serial.println("inside debounce if - Toggle Active"); //for test only
        digitalWrite(outPin, !digitalRead(outPin)); // toggle out pin
        debounce = millis(); // reset millis
  }
  previous = reading; // save previous reading
}

Arduino Switch Toggle 2


int inPin = 8;         // the number of the input pin
int outPin = 13;       // the number of the output pin

boolean previous = false;    // define state

unsigned long debounce = millis();   // the debounce time

void setup()
{
  pinMode(inPin,  INPUT);
  pinMode(outPin, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  if (digitalRead(inPin)==LOW){previous = false;}

  if (digitalRead(inPin)==HIGH && previous == false && millis()-debounce > 1000)  // debounce 1 sec.
  {
    Serial.println("inside debounce if - Toggle Active"); //for test only
    digitalWrite(outPin, !digitalRead(outPin)); // toggle out pin
    debounce = millis(); // reset millis
    previous = true; // save previous reading
  }
  delay(10); //wait
}

Arduino Switch Debounce


Model de cod Switch Debounce. În cazul apariției unor paraziți la intrările arduino, ceea ce vor duce la citirea unor erori gen circuit închis/deschis, se poate folosi în cod un debouncer.

Arduino Debounce

const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin

unsigned long debounce = millis(); // store millis for debounce

void setup() {
 pinMode(buttonPin, INPUT);
 pinMode(ledPin, OUTPUT);
}

 void loop() {
 if (digitalRead(buttonPin) == HIGH && (millis() - debounce) > 500){
 digitalWrite(ledPin, HIGH); //switch on led
}
 if (digitalRead(buttonPin) == LOW){
 digitalWrite(ledPin, LOW); //switch on led
 debounce = millis(); // reset millis
 }
 }

[Copy - Move - Delete] - Comenzi în Win7 - CMD


Notă: Crearea unui fișier de tip .bat în vederea executării unui task care să facă automat următoarele;

Copierea/Mutarea fișierelor dintr-o locație în altă locație

Robocopy "D:\locație" "D:\destinație" /MOV /R:10 /W:5 /V /ETA 

Folosirea /MOV duce la mutarea fișierelor
Folosirea %date% duce la crearea unui director cu denumirea datei în curs
Exp. (Robocopy "D:\locație" "D:\destinație\%date%" /MOV /R:10 /W:5 /V /ETA)

Ștergerea unui director și subdirector

rd "D:\locație" /s/q

Folosirea /s duce la ștergerea subdirectoarelor din director
Folosirea /q înseamnă fără întrebări și în liniște

Pentru ștergerea de fișiere se folosește funcția del

Download RoboCopy

Program special de copiere/mutare