
рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред
рджреЛ рд╣рдлреНрддреЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдПрдХ Arduino Duemilanove рдЦрд░реАрджрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдПрд▓рдИрдбреА рдХреЛ рдмреНрд▓рд┐рдВрдХ рдХрд┐рдпрд╛, рдПрд▓рд╕реАрдбреА рдХреЗ рд╕рд╛рде рдЦреЗрд▓рд╛, рдФрд░ рдлрд┐рд░ рдЙрджрд╛рд╣рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рд╕реВрдЪреА рдХреЛ рдиреАрдЪреЗ рдХрд░ рджрд┐рдпрд╛ред рдореИрдВ
рдкреНрд▓реЗ рдореЗрд▓реЛрдбреА рдХреЗ рдорд╛рдирдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд░реБрдХ рдЧрдпрд╛ рдФрд░ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП - рдореИрдВ рдзреНрд╡рдирд┐ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдЪрд╛рдпрджрд╛рдиреА рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рд┐рдВрдереЗрд╕рд╛рдЗрдЬрд╝рд░ (рдпрджрд┐ рдореИрдВ рдЗрд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ) рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдФрд░ рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ред
рдХрд╛рд░реНрдпреЛрдВ

рдХреБрдВрдЬреА
рд▓рдЧрднрдЧ 130 рд╣рд░реНрдЯреНрдЬ рдХреЗ рдЕрдВрддрд░ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдЪрд╛рд░ рдХреБрдВрдЬреА, рдЖрд╡реГрддреНрддрд┐ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рд╣рд╛рде рдореЗрдВ рдЕрдзрд┐рдХ рдмрдЯрди рдирд╣реАрдВ рдереЗ, рдореИрдВрдиреЗ рдЫреЛрдЯреЗ рд╡рд╛рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬреЛ рдХрд┐ Arduino рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ред
рдкреНрд░рднрд╛рд╡
рдпрд╣ рдмрдЯрди рдЖрд╡реГрддреНрддрд┐ рдЧреБрдгрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдХрджрдо рдкрд░ рдФрд░ рджрд┐рдП рдЧрдП рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдмрджрд▓рддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдХреБрдВрдЬреА рджрдмрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рднреА рдкреНрд░рднрд╛рд╡ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк X * X рдлрдВрдХреНрд╢рди рдЪреБрдирддреЗ рд╣реИрдВ (рдЬрд╣рд╛рдБ X 0 рд╕реЗ 1 рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ), рддреЛ рдЖрдкрдХреЛ рдбрд┐рд╕реНрдХреЛ рд╢реЙрдЯ рдЬреИрд╕рд╛ рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИред рдЕрдм рддрдХ, рдХреЛрдб рдореЗрдВ рдХреЗрд╡рд▓ рддреАрди рдкреНрд░рднрд╛рд╡ рд╣реИрдВ: рдкрд╛рдк (x) (0; 3.14), x * x (0; 1), 1-x (0; 1)ред
рдЕрднрд┐рд▓реЗрдЦ
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рд╣рдо рд╕рд░рдгреА рдореЗрдВ рдЖрд╡реГрддреНрддрд┐ рдореВрд▓реНрдп рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рд╕рд░рдгреА рднрд░ рдЬрд╛рддреА рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдПрдХ рд▓реВрдк рдореЗрдВ рдкреБрди: рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВред рд╕рдЪ рд╣реИ, рдкреНрд░рд╛рдкреНрдд "рдирдореВрдирд╛" рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЦреЗрд▓рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЪрд╛рдмрд┐рдпрд╛рдБ рдмрдЬрд╛рдирд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рджреЗрд░реА рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ (рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА)ред рдмрд╛рдж рдореЗрдВ рдореИрдВрдиреЗ рдмрдЯрди рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдПрдХ рдПрд▓рдИрдбреА рдЬреЛрдбрд╝рд╛, рдпрд╣ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЪрдордХрддрд╛ рд╣реИред
рдмрд┐рдЯ
рд╡реНрдпрдХреНрддрд┐рдЧрдд рджреЛрд╣рд░реЗ рд╕рдВрдХреЗрддреЛрдВ рдФрд░ рд╕рдВрдХреЗрддреЛрдВ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХреБрдВрдЬреА рдХреЛ рджрдмрд╛рдП рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ B рдХреЛ рдореЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдзреНрд╡рдирд┐ рдмрд╛рдЙрдВрд╕рд┐рдВрдЧ рдмреЙрд▓ рдХреЗ рдХреНрд░рдорд┐рдХ рд╕реНрдЯреЙрдк рдХреА рддрд░рд╣ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред
рдЖрд╡реГрддреНрддрд┐
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред
рдпреЛрдЬрдирд╛
рдЫрд╣ рдмрдЯрди, рджреЛ рдкреЛрдЯреЗрдВрд╢рд┐рдпреЛрдореАрдЯрд░, рд╕реНрдкреАрдХрд░ рдФрд░ LED + Arduinoред рд╕реНрдкреАрдХрд░ рдФрд░ рдмрдЯрди рдбрд┐рдЬрд┐рдЯрд▓ рдЗрдирдкреБрдЯ 2, 3, 4, 5, 6, 7, 8, рдПрд▓рдИрдбреА рд╕реЗ 13 рддрдХ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ; рдПрдирд╛рд▓реЙрдЧ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдкреЛрдЯреЗрдВрд╢рд┐рдпреЛрдореАрдЯрд░ 0 рдФрд░ 1;
рдХреЛрдб
#include <Math.h> float M=1; float x=0; int F,N,i,pl,d1,d2,d3,d4,d5,d6; int eff=0; int limit=0; float st; int arr[700]; int timer=0; int rec=0; int buf=0; int beat=0; void play(int F,int N, float M){ for(i=0;i<N/50;i++){ digitalWrite(2, HIGH); delayMicroseconds((F+1000)*2*M); digitalWrite(2, LOW); delayMicroseconds((F+1000)*2*M); } if(N!=50){ delay(N*0.1); } } void button(int num){ F-=150*(num-1); pl=1; eff=buf; if(eff!=0){ x=0; } if(rec==1){ arr[timer]=F+1000; } } void setup() { pinMode(8, INPUT); pinMode(7, INPUT); pinMode(6, INPUT); pinMode(5, INPUT); pinMode(4, INPUT); pinMode(3, INPUT); pinMode(2, OUTPUT); pinMode(13, OUTPUT); } void loop() { F = analogRead(A0); N = analogRead(A1); d1 = digitalRead(3); d2 = digitalRead(4); d3 = digitalRead(5); d4 = digitalRead(6); d5 = digitalRead(7); d6 = digitalRead(8); if(x>limit){ if(buf<4){ buf=eff; } else { buf=0; } eff=0; x=0; } if(rec==1){ timer++; arr[timer]=0; if(pl==0){ delayMicroseconds(F); } digitalWrite(13, HIGH); } else if(rec==2){ timer++; } if(eff==0){ pl=0; }else{ x+=st; } if(N<50){ N=50; eff=buf; } if(d1==1){ button(1); } if(d2==1){ button(2); } if(d3==1){ button(3); } if(d4==1){ button(4); } if(d5==1){ if(buf>3){ buf=0; } eff=buf; eff++; pl=1; } if(d6==1){ if(rec==0){ rec=1; }else if(rec==2){ rec=0; timer=0; } } if(rec==2 && arr[timer]!=0){ play(arr[timer],N,1); } if(pl==1){ if(eff==0){ play(F,N,1); } else if(eff==1){ limit=3.14; st=0.025; M=sin(x); } else if(eff==2){ limit=1.2; st=0.01; M=x*x; } else if(eff==3){ limit=1; st=0.025; M=x+0.5; } play(F,N,M); } if(rec==1 & timer>698){ timer=0; rec=2; digitalWrite(13, LOW); } if(timer>698){ timer=0; } }
рдЖрд╡рд╛рд╕

рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рддреИрдпрд╛рд░ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рдХрд╛рд░реНрдбрдмреЛрд░реНрдб рдХреЗрд╕ рдмрдирд╛рдпрд╛, рдПрдХ рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдкрд░ рд╕рд░реНрдХрд┐рдЯ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдЕрдВрджрд░ рд░рдЦрд╛ред рд╕реЛрд▓реНрдбрд░рд┐рдВрдЧ рдЖрдпрд░рди рдЕрдЫреВрддрд╛ рдирд╣реАрдВ рд░рд╣рд╛ред
рд╕реБрдзрд╛рд░
рдХреБрдВрдЬрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╕реБрдзрд╛рд░ рдПрдХ рдХреАрдмреЛрд░реНрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдХреБрдВрдЬреА рдПрдХрд▓ рдПрдирд╛рд▓реЙрдЧ рдЗрдирдкреБрдЯ рдХреЗ рдкреНрд░рддрд┐рд░реЛрдз рдХреЛ рдмрджрд▓ рджреЗрддреА рд╣реИред рдЖрдк рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕реАрдзреЗ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдпрд╛ рдПрдореНрдкрд▓реАрдлрд╛рдпрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рдиреА-рдЬреИрдХ рдЖрдЙрдЯрдкреБрдЯ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рднрд╛рд╡реЛрдВ рдХреА рдкреВрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рд╕реВрдЪреА рдЖрдкрдХреА рдХрд▓реНрдкрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИред