Соеденить два кода в один
- Войдите на сайт для отправки комментариев
Чт, 27/03/2014 - 22:36
Простите, я гребанный новичек и не знаю сейчас как справится с этой проблемой
первый код-это цикл загорания светодиодов(сам писал и причем видно, что код написан слишком тупо и я понимаю, что есть варианты намного проще, подскажите для примера)
второй код-это цикл пищалки (buzzer), которая играет звездный марш из звездных войн, но в этом коде уже присутствует цикл для лампочки.(скачанная)
уберите его пожалуйста и замените на цикл из первого кода
то есть должны одновременно пищать пищалки и загораться светодиоды из первого кода)
https://drive.google.com/file/d/0B-3iOq5C2Yh-NHhwazF3emZWM1k/edit?usp=sharing
https://drive.google.com/file/d/0B-3iOq5C2Yh-S0k3VFFGY3FtQVU/edit?usp=sharing
а где коды то?
это императорский марш
int ledPin = 13; //inserire il pin del led int speakerPin = 17;//inserire il pin del buzzer #define c 261 #define d 294 #define e 329 #define f 349 #define g 391 #define gS 415 #define a 440 #define aS 455 #define b 466 #define cH 523 #define cSH 554 #define dH 587 #define dSH 622 #define eH 659 #define fH 698 #define fSH 740 #define gH 784 #define gSH 830 #define aH 880 void setup() { pinMode(ledPin, OUTPUT); pinMode(speakerPin, OUTPUT); } void loop() { march(); } void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds) { digitalWrite(ledPin, HIGH); int x; long delayAmount = (long)(1000000/frequencyInHertz); long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2)); for (x=0;x<loopTime;x++) { digitalWrite(speakerPin,HIGH); delayMicroseconds(delayAmount); digitalWrite(speakerPin,LOW); delayMicroseconds(delayAmount); } digitalWrite(ledPin, LOW); delay(20); } void march() { beep(speakerPin, a, 500); beep(speakerPin, a, 500); beep(speakerPin, a, 500); beep(speakerPin, f, 350); beep(speakerPin, cH, 150); beep(speakerPin, a, 500); beep(speakerPin, f, 350); beep(speakerPin, cH, 150); beep(speakerPin, a, 1000); beep(speakerPin, eH, 500); beep(speakerPin, eH, 500); beep(speakerPin, eH, 500); beep(speakerPin, fH, 350); beep(speakerPin, cH, 150); beep(speakerPin, gS, 500); beep(speakerPin, f, 350); beep(speakerPin, cH, 150); beep(speakerPin, a, 1000); beep(speakerPin, aH, 500); beep(speakerPin, a, 350); beep(speakerPin, a, 150); beep(speakerPin, aH, 500); beep(speakerPin, gSH, 250); beep(speakerPin, gH, 250); beep(speakerPin, fSH, 125); beep(speakerPin, fH, 125); beep(speakerPin, fSH, 250); delay(250); beep(speakerPin, aS, 250); beep(speakerPin, dSH, 500); beep(speakerPin, dH, 250); beep(speakerPin, cSH, 250); beep(speakerPin, cH, 125); beep(speakerPin, b, 125); beep(speakerPin, cH, 250); delay(250); beep(speakerPin, f, 125); beep(speakerPin, gS, 500); beep(speakerPin, f, 375); beep(speakerPin, a, 125); beep(speakerPin, cH, 500); beep(speakerPin, a, 375); beep(speakerPin, cH, 125); beep(speakerPin, eH, 1000); beep(speakerPin, aH, 500); beep(speakerPin, a, 350); beep(speakerPin, a, 150); beep(speakerPin, aH, 500); beep(speakerPin, gSH, 250); beep(speakerPin, gH, 250); beep(speakerPin, fSH, 125); beep(speakerPin, fH, 125); beep(speakerPin, fSH, 250); delay(250); beep(speakerPin, aS, 250); beep(speakerPin, dSH, 500); beep(speakerPin, dH, 250); beep(speakerPin, cSH, 250); beep(speakerPin, cH, 125); beep(speakerPin, b, 125); beep(speakerPin, cH, 250); delay(250); beep(speakerPin, f, 250); beep(speakerPin, gS, 500); beep(speakerPin, f, 375); beep(speakerPin, cH, 125); beep(speakerPin, a, 500); beep(speakerPin, f, 375); beep(speakerPin, c, 125); beep(speakerPin, a, 1000); }а это мои лампочки
int l16 = 16; int l15 = 15; int l14 = 14; int l13 = 13; int l12 = 12; int l11 = 11; int l10 = 10; int l9 = 9; int l8 = 8; int l7 = 7; int l6 = 6; int l5 = 5; int l4 = 4; int l3 = 3; int l2 = 2; void setup(){ pinMode(l16, OUTPUT); pinMode(l15, OUTPUT); pinMode(l14, OUTPUT); pinMode(l13, OUTPUT); pinMode(l12, OUTPUT); pinMode(l11, OUTPUT); pinMode(l10, OUTPUT); pinMode(l9, OUTPUT); pinMode(l8, OUTPUT); pinMode(l7, OUTPUT); pinMode(l6, OUTPUT); pinMode(l5, OUTPUT); pinMode(l4, OUTPUT); pinMode(l3, OUTPUT); pinMode(l2, OUTPUT);} void loop(){ digitalWrite(l16,LOW); digitalWrite(l3, HIGH); digitalWrite(l7, HIGH); delay(50); digitalWrite(l3, LOW); digitalWrite(l8, HIGH); delay(50); digitalWrite(l7, LOW); digitalWrite(l6, HIGH); delay(50); digitalWrite(l8, LOW); digitalWrite(l13, HIGH); delay(50); digitalWrite(l6, LOW); digitalWrite(l9, HIGH); delay(50); digitalWrite(l13, LOW); digitalWrite(l5, HIGH); delay(50); digitalWrite(l9, LOW); digitalWrite(l2, HIGH); delay(50); digitalWrite(l5, LOW); digitalWrite(l3, HIGH); delay(50); digitalWrite(l2, LOW); digitalWrite(l10, HIGH); delay(50); digitalWrite(l3, LOW); digitalWrite(l12, HIGH); delay(50); digitalWrite(l10, LOW); digitalWrite(l11, HIGH); delay(50); digitalWrite(l12, LOW); digitalWrite(l4, HIGH); delay(50); digitalWrite(l11, LOW); digitalWrite(l14, HIGH); delay(50); digitalWrite(l4, LOW); digitalWrite(l15, HIGH); delay(50); digitalWrite(l14, LOW); digitalWrite(l16, HIGH); delay(50); digitalWrite(l15, LOW); digitalWrite(l3, HIGH); delay(50);}уберите его пожалуйста и замените на цикл из первого кода
то есть должны одновременно пищать пищалки и загораться светодиоды из первого кода)
не получится простым сложением циклов, хоть чего делай. потому что когда ардуина делает delay(), она не может ни мигать, ни пищать. может получиться только сначала промигали от начала до конца в тишине, потом пропищали в темноте. чтобы было одновременно - раскладывать все по тактам и совмещать такты
Можно попробовать псевдомультизадачность с библой TimerOne кажется. Но все равно может заикаться периодически .