Re: Mini CNC osa Z
Napsal: 27 zář 2019, 06:38
JEstli to nebude tim, ze s obema delas vsechno stejne naraz, takze se prekvapive chovaji stejne ...
České fórum pro všechny nadšence do Arduina a dalších technologií.
https://forum.hwkitchen.cz/
Kód: Vybrat vše
int Tlacitko = 7; // tlacitko na pinu 7
int LED1 = 10; // Led 1 na pinu 10
int LED2 = 11; // Led 2 na pinu 11
boolean Svetla = false;
boolean Blik = true;
boolean Blik2 = true;
boolean Blik3 = true;
int mode = 0; //(0 - Vypnuto, 1 - Zapnuto, 2 - Blikání rychlé, 3 - Blikání pomalé, 4 - Blikání střídavé
long posledniBlik = 0; // promenná pro počet milisekund pri poslednim bliku (pomale blikání)
long posledniBlik2 = 0;
long posledniBlik3 = 0;
// odsud přidáno z https://www.baldengineer.com/millis-tutorial.html až po void setup !
// each "event" (LED) gets their own tracking variable
unsigned long previousMillisLED1=0; // změnil jsem VSUDE !!! LED10 na LED1 a LED11 na LED2
unsigned long previousMillisLED2=0;
int intervalLED1 = 500;
int intervalLED2 = 500;
boolean LED2state = false; // the LED will turn ON in the first iteration of loop()
boolean LED1state = false; // need to seed the light to be OFF
void setup() {
pinMode(LED1, OUTPUT); // nastaví vystup u Led 1 na výstup
pinMode(LED2, OUTPUT); // nastaví vystup u Led 2 na výstup
pinMode(Tlacitko, INPUT); // nastaví pin kde je připojeno tlačítko jako výstup
digitalWrite(Tlacitko,HIGH); // zapnutí pullup rezistoru, aby jsme k tlačítku
// nemuseli přidávat rezistor. Tlačítko je tedy připojeno ke GND a pinu 7 !!!!!!
// Při vypnutém tlačítku vnitřní pullup rezistor připojujuje k +5V.
}
void loop() {
// zapne nebo vypne LED v závislosti na stavu proměné Svetla
digitalWrite(LED1, Svetla);
digitalWrite(LED2, Svetla);
// když je na vstupu Tlačítka logická 0 (LOW)
// !!! není spínálo log. 1, protože využíváme tzv. pulldown rezistoru v čipu
if ((digitalRead(Tlacitko)) == LOW) // tady se přečte stav tlačítka
{
mode++; // přičte k MODE hodnotu 1
if (mode > 4) mode = 0; // když je mode větší jak 4 tak ho vynuluj
delay(200); // prodleva proti záchvěvům tlačítka
}
if (mode == 0) Svetla = 0; //Vypni světla
if (mode == 1) Svetla = 1; //Zapni světla
if (mode == 2) Svetla = Blik; // Rychlé blikání - Svetla zavisí na stavu promené Blik
if (mode == 3) Svetla = Blik2; // Pomalé blikání - Svetla zavisí na stavu promené Blik
if (mode == 4) Svetla = Blik3; // Střídavé blikání
// časovač pro blikání *********************************************
if ((millis() - posledniBlik) > 200) // když celkový počet milisekund
// minus počet milisekund při poslednim "bliku" je vetši jak 200
// tady můžete nastavit rychlost blikání v počtu milisekund
{
Blik = !Blik; // Blik se rovná negaci Blik (neguje proměnou)
posledniBlik = millis(); // zapiš poslední blik
}
// časovač pro blikání 2 *********************************************
if ((millis() - posledniBlik2) > 400) // když celkový počet milisekund
// minus počet milisekund při poslednim "bliku" je vetši jak 400
// tady můžete nastavit rychlost blikání v počtu milisekund
{
Blik2 = !Blik2; // Blik2 se rovná negaci Blik (neguje proměnou)
posledniBlik2 = millis(); // zapiš poslední blik2
}
// časovač pro blikání 3 *********************************************
// TADY LEDKY SVITI TRVALE DO STISKNUTI TLACITKA !!!
unsigned long currentMillis = millis(); { // zkontroluji, zda-li je správný čas na bliknutí LED
if ((unsigned long)(currentMillis - previousMillisLED1) >= intervalLED1) {
LED1state = !LED1state; // neguje se LED1
digitalWrite(10, !LED1state); // "!" uděla blikání
previousMillisLED1 = currentMillis; // uloží aktualní čas na pinu 10
}
if ((unsigned long)(currentMillis - previousMillisLED2) >= intervalLED2) {
LED2state = !LED2state;
digitalWrite(11, LED2state);
previousMillisLED2 = currentMillis; // uloží aktualní čas na pinu 11
}
}
}
Kód: Vybrat vše
#define jmenoHodnoty hodnota
//například
#define led1Pin 2
#define led2Pin 3
#define tlac1Pin 4
Kód: Vybrat vše
int LED1 = 10; // Led 1 na pinu 10
int LED2 = 11; // Led 2 na pinu 11
Kód: Vybrat vše
#define LED1 10 // Led 1 na pinu 10
#define LED2 11 // Led 2 na pinu 11
Kód: Vybrat vše
#define LED1 10
#define LED2 11
boolean Blik3;
boolean Blik4;
long posledniBlik3;
long posledniBlik4;
void setup() {
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
}
void loop() {
if (millis() >= posledniBlik3 + 500) {
posledniBlik3 = millis();
Blik3 = !Blik3;
digitalWrite(10,Blik3);
}
if (millis() >= posledniBlik4 + 500) {
posledniBlik4 = millis();
Blik4 = !Blik4;
digitalWrite(11,!Blik4);
}
}