Пожалуйста, помогите доработать программу
- Войдите на сайт для отправки комментариев
Вс, 27/01/2019 - 10:59
Добрый день. Я - новичок в Ардуино. Мне нужно чем-то заменить for в программе, но я не понимаю, как.
Добрый день. Я - новичок в Ардуино. Мне нужно чем-то заменить for в программе, но я не понимаю, как.
const int8_t tonePin = 11; const byte rgbPins[3] = {3,5,6}; int dim = 1; void setup() { for(byte i=0; i<3; i++){ pinMode( rgbPins[i], OUTPUT ); } pinMode(2,OUTPUT); pinMode(rgbPins[0], OUTPUT); pinMode(rgbPins[1], OUTPUT); pinMode(rgbPins[2], OUTPUT); } void gori() { analogWrite(rgbPins[0], 255); analogWrite(rgbPins[1], 0); analogWrite(rgbPins[2], 0); for(int i=255; i>=0; i--){ analogWrite( rgbPins[0], i/dim ); analogWrite( rgbPins[1], (255-i)/dim ); unsigned long time1=millis(); while (millis()-time1<10) { } } for(int i=255; i>=0; i--){ analogWrite( rgbPins[1], i/dim ); analogWrite( rgbPins[2], (255-i)/dim ); unsigned long time1=millis(); while (millis()-time1<10) { } } for(int i=255; i>=0; i--){ analogWrite( rgbPins[2], i/dim ); analogWrite( rgbPins[0], (255-i)/dim ); unsigned long time1=millis(); while (millis()-time1<10) { } analogWrite(rgbPins[0], 0); analogWrite(rgbPins[1], 0); analogWrite(rgbPins[2], 0); } } void midi() { const struct { int freq, duration, dly; } sounds[] = { {293, 225, 250}, {493, 225, 250}, {440, 225, 250}, {391, 225, 250}, {293, 450, 750}, {293, 225, 250}, {293, 225, 250}, {493, 225, 250}, {440, 225, 250}, {391, 225, 250}, {329, 450, 750}, {329, 225, 250}, {329, 225, 250}, {523, 225, 250}, {493, 225, 250}, {440, 225, 250}, {587, 450, 750}, {587, 225, 250}, {659, 225, 250}, {587, 225, 250}, {523, 225, 250}, {440, 225, 250}, {493, 675, 750}, {293, 225, 250}, {293, 225, 250}, {493, 225, 250}, {440, 225, 250}, {391, 225, 250}, {293, 450, 750}, {293, 225, 250}, {293, 225, 250}, {493, 225, 250}, {440, 225, 250}, {391, 225, 250}, {329, 450, 750}, {329, 225, 250}, {329, 225, 250}, {523, 225, 250}, {493, 225, 250}, {440, 225, 250}, {587, 225, 250}, {587, 225, 250}, {587, 225, 250}, {587, 225, 250}, {659, 225, 250}, {587, 225, 250}, {523, 225, 250}, {440, 225, 250}, {391, 450, 500}, {587, 450, 500}, {493, 225, 250}, {493, 225, 250}, {493, 450, 500}, {493, 225, 250}, {493, 225, 250}, {493, 450, 500}, {493, 225, 250}, {587, 225, 250}, {391, 337, 375}, {440, 112, 125}, {493, 450, 1000}, {523, 225, 250}, {523, 225, 250}, {523, 337, 375}, {523, 112, 125}, {523, 225, 250}, {493, 225, 250}, {493, 225, 250}, {493, 112, 125}, {493, 112, 125}, {493, 225, 250}, {440, 225, 250}, {440, 225, 250}, {493, 225, 250}, {440, 450, 500}, {587, 450, 500}, {493, 225, 250}, {493, 225, 250}, {493, 450, 500}, {493, 225, 250}, {493, 225, 250}, {493, 450, 500}, {493, 225, 250}, {587, 225, 250}, {391, 337, 375}, {440, 112, 125}, {493, 450, 1000}, {523, 225, 250}, {523, 225, 250}, {523, 337, 375}, {523, 112, 125}, {523, 225, 250}, {493, 225, 250}, {493, 225, 250}, {493, 112, 125}, {493, 112, 125}, {587, 225, 250}, {587, 225, 250}, {523, 225, 250}, {440, 225, 250}, {391, 675, 750} }; const uint8_t melodieLength = sizeof(sounds) / sizeof(sounds[0]); for (uint8_t i = 0; i < melodieLength; i++) { tone(tonePin, sounds[i].freq, sounds[i].duration); unsigned long time1=millis(); while (millis()-time1<sounds[i].dly) { } } } void loop() { if(analogRead(A0)>60) { midi(); gori(); } }А мы, кроме того, не понимаем еще и "Чем заменить" и "Зачем заменять".
Создаете функции, в них заводите переменные счетчика, которые изменяете при каждом входе. Дополнительным условием входа в функцию делаете ваш миллис, который сейчас ничем не отличается от делея. Никакие while, for не нужны, только if-ы.
Добрый день. Я - новичок в Ардуино. Мне нужно чем-то заменить for в программе, но я не понимаю, как.
замени на while(){};
или на do while();
или if и goto
Это ёлка которая либо играет, либо мигает, а надо чтоб одновременно?
leks, вы экстрасенс!
leks, вы экстрасенс!
Ну так у вас одна функция мигает, другая играет. И ни как в таком виде одновременно не будет, а только по очереди их вызова.
ТС уже задавал этот вопрос пару месяцев назад и ему уже все объяснили. Причем я постарался это сделать понятно даже для дауна. Дальше - вопросы для специалиста в коррекционной педагогике.
Вот ссылка на ту тему.