Poradna
Datum | 08.04.2016 |
---|---|
Vložil | Matěj |
Titulek | Re: Naprogramovani |
Zdravím,
použij hodinový modul a jenom porovnávej čas, který aktuálně je, a který chceš jako startovní nebo konečný a na základě toho sepni nebo vypni relé. Na DHT11 i na LCD displej tu máš tutoriál, respektive na všechno, co potřebuješ. - arduino8.cz - na tomto novém webu to určitě najdeš, myslím, že i na tomhle. :-)
———
Datum | 16.02.2016 |
---|---|
Vložil | Mates |
Titulek | PWM led diody |
Dobrý den, dneska
jsem vytvořil a naprogramoval na Arduinu program, který má pomocí PWM pomalu rozsvěcovat led diody (nápis) – viz. obr. https://imgur.com/9CXlhpm – NÁPIS LOVE Jenže na nepájivém poli mi to fungovalo, a jakmile vyndám ATmegu a dám jim na plošný spoj, tak mi nic nefunguje. A přitom plošný spoj mám překontrolovaný a chyby v něm nemám. Spíš bych se chtěl zeptat, jestli nevidíte nějakou chybu v zapojení schéma procesoru. https://imgur.com/6LbYMY – schéma Jsem nováček, a tak se chci zeptat, protože já jsem již marný. Jinak kdosi mi říkal něco o tom, že by tam měl být zapojený krystal, ale to jsem moc nepchopil, tak bych byl rád, kdyby mi to někdo objasnil. Zde je i kód. Díky moc předem `int LED1 = 5; // LED 1 na 5 pin
int LED2 = 6; // LED 2 na 6 pin
int LED3 = 10; // LED 3 na 10 pin
int LED4 = 11; // LED 4 na 11 pin
void setup() {
}
void loop() {
//————————————————————LED 1—————————————————————-
// fade z min do max v kouskách po (x) bodech:
for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 1000){
// nastavuje hodnout (vzdálnost od 0 do 255):
analogWrite(LED1, fadeValue);
// čeká (x) mili sekund nž se setmí
delay(0.00001);
}
// fade z max do min v kouskách po (x) bodech:
for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 1) {
// nastavuje hodnout (vzdálnost od 0 do 255):
analogWrite(LED1, fadeValue);
// čeká (x) mili sekund než se setmí
delay(4);
//————————————————————LED 2—————————————————————-
}
for (int fadeValue2 = 0 ; fadeValue2 <= 255; fadeValue2 += 1000){
analogWrite(LED2,fadeValue2);
delay(0.00001);
}
// fade z min do max v kouskách po (x) bodech:
for (int fadeValue2 = 255 ; fadeValue2 >= 0; fadeValue2 -= 1) {
// nastavuje hodnout (vzdálnost od 0 do 255):
analogWrite(LED2, fadeValue2);
// čeká (x) mili sekund než se setmí
delay(4);
}
//————————————————————LED 3—————————————————————-
for (int fadeValue3 = 0 ; fadeValue3 <= 255; fadeValue3 +=1000){
analogWrite(LED3,fadeValue3);
delay(0.00001);
}
// fade z min do max v kouskách po (x) bodech:
for (int fadeValue3 = 255 ; fadeValue3 >= 0; fadeValue3 -= 1) {
// nastavuje hodnout (vzdálnost od 0 do 255):
analogWrite(LED3, fadeValue3);
// čeká (x) mili sekund než se setmí
delay(4);
}
//————————————————————LED 4—————————————————————-
for (int fadeValue4 = 0 ; fadeValue4 <= 255; fadeValue4 += 1000){
analogWrite(LED4,fadeValue4);
delay(0.00001);
}
// fade z min do max v kouskách po (x) bodech:
for (int fadeValue4 = 255 ; fadeValue4 >= 0; fadeValue4 -= 1) {
// nastavuje hodnout (vzdálnost od 0 do 255):
analogWrite(LED4, fadeValue4);
// čeká (x) mili sekund než se setmí
delay(4);
}
//————————————————————LED 1—————————————————————-
// fade z min do max v kouskách po (x) bodech:
for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5){
// nastavuje hodnout (vzdálnost od 0 do 255):
analogWrite(LED1, fadeValue);
// čeká (x) mili sekund nž se setmí
delay(20);
}
// fade z min do max v kouskách po (x) bodech:
for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 300) {
// nastavuje hodnout (vzdálnost od 0 do 255):
analogWrite(LED1, fadeValue);
// čeká (x) mili sekund než se setmí
delay(20);
}
//————————————————————LED 2—————————————————————-
for (int fadeValue2 = 0 ; fadeValue2 <= 255; fadeValue2 += 5){
analogWrite(LED2,fadeValue2);
delay(20);
}
// fade z min do max v kouskách po (x) bodech:
for (int fadeValue2 = 255 ; fadeValue2 >= 0; fadeValue2 -= 300) {
// nastavuje hodnout (vzdálnost od 0 do 255):
analogWrite(LED2, fadeValue2);
// čeká (x) mili sekund než se setmí
delay(20);
}
//————————————————————LED 3—————————————————————-
for (int fadeValue3 = 0 ; fadeValue3 <= 255; fadeValue3 += 5){
analogWrite(LED3,fadeValue3);
delay(20);
}
// fade z min do max v kouskách po (x) bodech:
for (int fadeValue3 = 255 ; fadeValue3 >= 0; fadeValue3 -= 300){
// nastavuje hodnout (vzdálnost od 0 do 255):
analogWrite(LED3, fadeValue3);
// čeká (x) mili sekund než se setmí
delay(20);
}
//————————————————————LED 4—————————————————————-
for (int fadeValue4 = 0 ; fadeValue4 <= 255; fadeValue4 += 5){
analogWrite(LED4,fadeValue4);
delay(20);
}
// fade z min do max v kouskách po (x) bodech:
for (int fadeValue4 = 255 ; fadeValue4 >= 0; fadeValue4 -= 300) {
// nastavuje hodnout (vzdálnost od 0 do 255):
analogWrite(LED4, fadeValue4);
// čeká (x) mili sekund než se setmí
delay(20);
}
}`
———
Datum | 16.02.2016 |
---|---|
Vložil | danda08 |
Titulek | Re: PWM led diody |
Zdravím,
problém je v tom krystalu.
Ten u procesoru funguje jako "časovač". Arduino má na desce krystal 16Mhz. Pokud chceš program použít tak, že poté procesor vyndáš z Arduina a dáš ho na jiné DPS musíš i na tom DPS použít krystal o stejné frekvenci. Pokud ho tam nedáš, procesor čeká na takt hodin, ten ale logicky nemá odkud přijít a proto se program nehýbe. Pokud by jsi chtěl, dokreslím ti jak DPS upravit tak, aby to fungovalo ;)
———
Datum | 16.02.2016 |
---|---|
Vložil | Mates |
Titulek | Re: Re: PWM led diody |
To by jste byl zlatý, kdyby jste mi to dokreslil!!! Já už to skoro vzdal, protože jsem byl v domění, že processor má tenhle článek v sobě. Díky moc :)
———
Datum | 16.02.2016 |
---|---|
Vložil | danda08 |
Titulek | Re: Re: Re: PWM led diody |
Procesor v sobě krystal má, ale ten je "pomalý" a nepřesný. Proto se používá externí :)
Krystal můžete použít jaký chcete, hlavní je že MUSÍ mít kmitočet 16MHz (když přijdete do nějakého obchodu se součástkami a řeknete že chcete 16MHz kdystal k procesoru tak budou vědět ;)). Pak už stačí jen připojit 22pF kondenzátory a je to ;)
Zapojení:https://onedrive.live.com/redir?resid=FAF4E984A335CDFF!5662&authkey=!AE5iHNu39sjBTsk&v=3&ithint=photo%2cPNG
———
Datum | 16.02.2016 |
---|---|
Vložil | Mates |
Titulek | Re: Re: Re: Re: PWM led diody |
supeer :) Díky moc :)
———
Datum | 17.02.2016 |
---|---|
Vložil | Mates |
Titulek | Re: Re: Re: Re: PWM led diody |
Tak krystal i kondíky už tam mám, ale furt mi to moc nechce jet :/ Jako má to tendenci fungovat, jakože to funguje jako pwm, ale přijde mi to jako když pustíte nějakou pořádnou hru na starém počítači. Prostě se to seká.... Nevíte, čím by to mohlo být způsobeno?
———
Datum | 17.02.2016 |
---|---|
Vložil | Mates |
Titulek | Re: Re: Re: Re: PWM led diody |
A nejspíš jsem atmegu odpálil :/ Porože ani v arduinu nejeví žáné známky života, a nejde ni nic nahrát..
———
Datum | 07.02.2016 |
---|---|
Vložil | Lukas |
Titulek | Zpoždění relé millis |
Ahoj, snažím se nastavit Arduino UNO tak, aby po stisku tlačítka se sepnulo relé do stavu ON a po uběhnutí 5min zase vypnulo. Je možné pro tuto funkci použít millis? Nemůžu použít delay, potřebuji ještě číst ze senzorů.
Nikde se o tom nic nepíše, tak nevím jsetli je to možné.
Děkuji za radu, případně za návrhy.
———
Datum | 10.02.2016 |
---|---|
Vložil | Harmison |
Titulek | Re: Zpoždění relé millis |
Ano, je to možné. Nemohu však potvrdit, že se o tom nikde nepíše, ba právě naopak ;-)