|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 5:21 pm
Arduino - fadeIn(); fadeOut(); функции
| Автор |
Съобщение |
|
maguss4o
Ранг: Минаващ
Регистриран на: Пон Май 06, 2013 11:58 pm Мнения: 15
|
 Arduino - fadeIn(); fadeOut(); функции
Здравейте, Наскоро започнах да си чеша пръстите с ардуино и една елементарна задачка ме спъна яко Схемата е следната. Едно Arduino Uno и 3 LED към пинове: 9,10,11. Целта ми е да викам функции за fadeIn и fadeOut, като задавам масив с пиновете и времето, за което да се случи целия ефект. Схема на ефекта:   |  |  |  | Код: int led1 = 9; // PWM pin int led2 = 10; // PWM pin int led3 = 11; // PWM pin int fadeTime = 5000; // Overal fading time in ms
void fadeIn(int myArray[], int time){ int arraySize = sizeof(myArray); double sectionFade = time/(arraySize+2);
// ???? }
void fadeOut(int myArray[], int time){ int arraySize = sizeof(myArray); double sectionFade = time/(arraySize+2);
// ???? }
void setup() { pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); //Serial.begin(9600); //Serial.println("== SERIAL START ==="); }
void loop() { int myFadeIn[3] = {led1, led2, led3}; fadeIn(myFadeIn, fadeTime); int myFadeOut[3] = {led3, led2, led1}; fadeOut(myFadeOut, fadeTime); }
|  |  |  |  |
|
| Чет Яну 11, 2018 7:00 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: Arduino - fadeIn(); fadeOut(); функции
Tова трябва да е Ц... Къде е main() или има начин да се каже ,че loop() e всъщност main()?
|
| Чет Яну 11, 2018 7:48 pm |
|
 |
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 8:04 pm Мнения: 2663 Местоположение: София / Велико Търново
|
 Re: Arduino - fadeIn(); fadeOut(); функции
На ардуиното е така setup() се изпълнява един път, loop() е основния цикъл 
|
| Чет Яну 11, 2018 7:51 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: Arduino - fadeIn(); fadeOut(); функции
Тоест код-листингът е генериран и се пита
|
| Чет Яну 11, 2018 8:27 pm |
|
 |
|
maguss4o
Ранг: Минаващ
Регистриран на: Пон Май 06, 2013 11:58 pm Мнения: 15
|
 Re: Arduino - fadeIn(); fadeOut(); функции
С други думи - да. Пробвах с 2 цикъла for не става. После с 3 цикъла for където първия ми цикъл е общото време time/броя елементи в масива (с което разделям цялото време на интервали, който интервал е 50% от даденото състояние), следващия ми вложен for е общия time разделен на интервалите (където при 3 светодиода и време от 5 секунди се получава 1250ms на интервал) и третия ми вложен for е листването на елементите от масива и задаване на стойността им с analogWrite като стойността им я map-вам от 0 до 1250 време на интервал за 0 до 127. Е да ама удрям на камък. Търсения ефект не се получава.
|
| Чет Яну 11, 2018 8:43 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: Arduino - fadeIn(); fadeOut(); функции
Това е несериозно. Пусни кода, дето не върви - да става лаф, иначе не е интересно за никого и едва ли ще получиш отговори.
|
| Чет Яну 11, 2018 9:32 pm |
|
 |
|
dexterJr
Ранг: Новодошъл
Регистриран на: Вто Юни 19, 2012 3:53 pm Мнения: 118
|
 Re: Arduino - fadeIn(); fadeOut(); функции
От къде да го пусне, то това е всичко. Или не?
|
| Чет Яну 11, 2018 10:31 pm |
|
 |
|
maguss4o
Ранг: Минаващ
Регистриран на: Пон Май 06, 2013 11:58 pm Мнения: 15
|
 Re: Arduino - fadeIn(); fadeOut(); функции
 |  |  |  | Код: int led1 = 9; // PWM pin int led2 = 10; // PWM pin int led3 = 11; // PWM pin int fadeTime = 5000; // Overal fading time in ms
void fadeIn(int myArray[], int time){ int arraySize = sizeof(myArray); double sectionFade = (time/(arraySize+2))/10; int br = 0;
for(int i = 0; i<arraySize+1; i++){ digitalWrite(myArray[i], LOW); }
for(int a = 1; a<=arraySize+2; a++){ for(int b = 0; b<=sectionFade; b+=5){ Serial.println("-----------"); int brightness = map(b, 0, sectionFade, 0, 127); for(int i = 1; i<=arraySize+1; i++){
if(i == a){ br = brightness; }else if((i % 2) == 0){ br = brightness*2; } analogWrite(myArray[a-i], br); } delay(50); } }
for(int i = 0; i<arraySize+1; i++){ digitalWrite(myArray[i], HIGH); } }
void fadeOut(int myArray[], int time){ int arraySize = sizeof(myArray); double sectionFade = time/(arraySize+2);
for(int i = 0; i<arraySize+1; i++){ digitalWrite(myArray[i], LOW); } delay(2000); // ???? }
void setup() { pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); Serial.begin(9600); Serial.println("== SERIAL START ===");
}
void loop() { int myFadeIn[3] = {led1, led2, led3}; fadeIn(myFadeIn, fadeTime); int myFadeOut[3] = {led3, led2, led1}; fadeOut(myFadeOut, fadeTime);
}
|  |  |  |  |
|
| Чет Яну 11, 2018 11:18 pm |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
 Re: Arduino - fadeIn(); fadeOut(); функции
Този код, който си го пуснал какво точно не му работи? Какво прави грешно?
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Пет Яну 12, 2018 12:41 am |
|
 |
|
maguss4o
Ранг: Минаващ
Регистриран на: Пон Май 06, 2013 11:58 pm Мнения: 15
|
 Re: Arduino - fadeIn(); fadeOut(); функции
Американски форум: питаш нещо и ти отговарят; Руски форум: питаш нещо и теб те питат; Български форум: питаш нещо и всички ти обясняват колко си тъп!
Та така де fade-ва се само Pin9, a другите мигат постоянно. Пичове, помолих някой да ме насочи как да стигна до желания ефект. Вие тука ми се изредихте лаф да става. Единия иска да види код, другия - ама на тоз код ко му има, третия пита къде е main() на Arduino if( $YouCanHelp == 1){ WriteApost(); }else{ Serial.print("Dont SPAM !!"); }
|
| Пет Яну 12, 2018 5:52 am |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: Arduino - fadeIn(); fadeOut(); функции
Пич, гледам си писал посреднощ - дано ти е тръгнал кода. Че не знам какво e Arduino и как са му революционизирали имената много ме притесни , но за малко. Аз и Ц не знам ,още по-малко Ц за Ардуино , ама ще си позволя да ти коментирам малко кода.
|
| Пет Яну 12, 2018 8:28 am |
|
 |
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 11:53 pm Мнения: 4582 Местоположение: Brussels / Пловдив
|
 Re: Arduino - fadeIn(); fadeOut(); функции
Е, ти сам си му хванал цаката - иди и питай в американски форум вместо да ти се обяснява колко си тъп ... 
_________________ Мразя да мразя ...
|
| Пет Яну 12, 2018 10:31 am |
|
 |
|
maguss4o
Ранг: Минаващ
Регистриран на: Пон Май 06, 2013 11:58 pm Мнения: 15
|
 Re: Arduino - fadeIn(); fadeOut(); функции
int led1 = 9; // PWM pin int led2 = 10; // PWM pin int led3 = 11; // PWM pin int fadeTime = 5000; // Overal fading time in ms void fadeIn(int myArray[], int time){ int arraySize = sizeof(myArray); //това тук е с подозрителен резултат #това връща резултат 2, което като го сметнеш с нулевия елемент стават общо 3 елемента в масива. double sectionFade = (time/(arraySize+2))/10; // double какъв тип е ? double float или double int ? Сложил си го за да ти мине делението? #обикновен double, това връща резултат 5000/(2+2)/10=1500.00, което е секцията на 50% при 3 елемента в масив. int br = 0; for(int i = 0; i<arraySize+1; i++){ //според мен индексът i се движи между i=0 digitalWrite(myArray , LOW); //и дължината на масива i<arraySize #ако е само arraySize, i ще приеме стойности във for само 0,1, понеже i++ до 1<2... има две възможности, за да станат 0,1,2 (3 елемента в масива) - или да го направя i<=arraySize или i<arraySize+1. Което няма никаква разлика. }
Колега ако няма какво да кажеш, просто си замълчи или всичките ти там 1500+ постове са ти като този ... ?
|
| Пет Яну 12, 2018 12:20 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: Arduino - fadeIn(); fadeOut(); функции
5000/(2+2)/10=1500.00 Това в каква математика ? Ардуино? Аз поне не съм чувал за "обикновен double".
|
| Пет Яну 12, 2018 12:30 pm |
|
 |
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 11:22 pm Мнения: 3084
|
 Re: Arduino - fadeIn(); fadeOut(); функции
void fadeIn(int myArray[], int time){ int arraySize = sizeof(myArray);
Според мене на врория ред arraySize ти се получава равно на 2 , не защото масивът ти е стри елемента, а защото е обявен от тип int на първия ред; sizeof(myArray) е по-скоро макрос на препроцесора, а не реална изпълнима функция;
Последна промяна stefan63 на Пет Яну 12, 2018 12:36 pm, променена общо 1 път
|
| Пет Яну 12, 2018 12:35 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 1 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|