#include <Servo.h>
#define LED1 8
#define LED2 9
#define LED3 10
#define wlacznik 2
#define wlacznik2 3
unsigned long aktualnyCzas = 0;
unsigned long zapamietanyCzasLED1 = 0;
unsigned long zapamietanyCzasLED2 = 0;
unsigned long zapamietanyCzasLED3 = 0;
int stanLED1 = LOW;
int stanLED2 = LOW;
int stanLED3 = LOW;
int potpin = 4;
int potpin1 = 5;
int val;
int zmianaled = 0;
Servo servo1;
Servo servo2;
int servoPos = 0;
int servoPos2 = 0;
void setup() {
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(wlacznik, INPUT_PULLUP);
pinMode(wlacznik2, INPUT_PULLUP);
servo1.attach(5);
servo2.attach(6);
randomSeed(analogRead(0));
}
void loop() {
aktualnyCzas = millis();
if (aktualnyCzas - zapamietanyCzasLED1 >= random(200,12000UL)) {
zapamietanyCzasLED1 = aktualnyCzas;
stanLED1 = !stanLED1;
digitalWrite(LED1, stanLED1);
}
if (aktualnyCzas - zapamietanyCzasLED2 >= random(400,1500UL)) {
zapamietanyCzasLED2 = aktualnyCzas;
stanLED2 = !stanLED2;
digitalWrite(LED2, stanLED2);
}
if (aktualnyCzas - zapamietanyCzasLED3 >= random(50,10000UL)) {
zapamietanyCzasLED3 = aktualnyCzas;
stanLED3 = !stanLED3;
digitalWrite(LED3, stanLED3);
}
for(servoPos = random(1,180) ; servoPos < random(180,1); servoPos++)
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(5);
}
for(servoPos2 = random(180,80); servoPos2 > random(80,180) ;servoPos2--);
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(5);
}
for(servoPos = random(180,1) ; servoPos < random(1,180); servoPos++)
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(5);
}
for(servoPos2 = random(80,180); servoPos2 > random(180,80) ;servoPos2--);
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(5);
}
for(servoPos = random(1,180) ; servoPos < random(180,1); servoPos++)
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(2);
}
for(servoPos2 = random(180,80); servoPos2 > random(80,180) ;servoPos2--);
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(2);
}
for(servoPos = random(180,1) ; servoPos < random(1,180); servoPos++)
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(2);
}
for(servoPos2 = random(80,180); servoPos2 > random(180,80) ;servoPos2--);
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(2);
}
for(servoPos = random(1,180) ; servoPos < random(180,1); servoPos++)
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(8);
}
for(servoPos2 = random(180,80); servoPos2 > random(80,180) ;servoPos2--);
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(8);
}
for(servoPos = random(180,1) ; servoPos < random(1,180); servoPos++)
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(8);
}
for(servoPos2 = random(80,180); servoPos2 > random(180,80) ;servoPos2--);
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(8);
}
for(servoPos = random(1,180) ; servoPos < random(180,1); servoPos++)
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(random(1,10));
}
for(servoPos2 = random(180,80); servoPos2 > random(80,180) ;servoPos2--);
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(random(1,10));
}
for(servoPos = random(180,1) ; servoPos < random(1,180); servoPos++)
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(random(1,10));
}
for(servoPos2 = random(80,180); servoPos2 > random(180,80) ;servoPos2--);
{
servo1.write(servoPos);
servo2.write(servoPos2);
delay(random(1,10));
}
if (digitalRead(wlacznik) == LOW)
tryb();
if (digitalRead(wlacznik2) == LOW)
tryb2();
}
void tryb(){
int ruch = 130;
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
delay(10);
while (digitalRead(wlacznik) == LOW){
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
delay(10);
for (servoPos = 150; servoPos >= ruch-20; servoPos -= 3) {
servo2.write(servoPos);
delay(30);
}
for (servoPos = 180; servoPos >= 0; servoPos -= 3) {
servo1.write(servoPos);
delay(30);
}
for (servoPos = ruch-20; servoPos <= 150; servoPos += 3) {
servo2.write(servoPos);
delay(30);
}
for (servoPos = 0; servoPos <= 180; servoPos += 3) {
servo1.write(servoPos);
delay(30);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
delay(10);
}
for (servoPos = 150; servoPos >= ruch-40; servoPos -= 3) {
servo2.write(servoPos);
delay(30);
}
for (servoPos = 180; servoPos >= 0; servoPos -= 3) {
servo1.write(servoPos);
delay(30);
}
for (servoPos = ruch-40; servoPos <= 150; servoPos += 3) {
servo2.write(servoPos);
delay(30);
}
for (servoPos = 0; servoPos <= 180; servoPos += 3) {
servo1.write(servoPos);
delay(30);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, LOW);
delay(10);
}
for (servoPos = 150; servoPos >= ruch-60; servoPos -= 3) {
servo2.write(servoPos);
delay(30);
}
for (servoPos = 180; servoPos >= 0; servoPos -= 3) {
servo1.write(servoPos);
delay(30);
}
for (servoPos = ruch-60; servoPos <= 150; servoPos += 3) {
servo2.write(servoPos);
delay(30);
}
for (servoPos = 0; servoPos <= 180; servoPos += 3) {
servo1.write(servoPos);
delay(30);
}
}
}
//JEŚLI CHCĘ DODAC DODATKOWE RUCHY TO TUATJ WYZEJ
void tryb2(){
while (digitalRead(wlacznik2) == LOW) {
zmianaled = analogRead(A4);
zmianaled = map(zmianaled,0,1023,1,10);
if(zmianaled == 9){
digitalWrite(LED3, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED1, LOW);
delay(30);
} else if (zmianaled == 6){
digitalWrite(LED3, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED1, HIGH);
delay(30);
} else if (zmianaled == 3) {
digitalWrite(LED3, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED1, HIGH);
delay(30);
}
delay(15);
val= analogRead(potpin1);
val= map(val, 0, 1023, 0, 180);
servo1.write(val);
val= analogRead(potpin);
val= map(val, 0, 1023, 0, 180);
servo2.write(val);
delay(15);
}
}
‘Randomowe’? Autor powinien zaopatrzyć się w słownik języka polskiego. Fatalny język na poziomie podstawówki.
Słowo Randomowe jest prawidłowe, użyłem je, bo w arduino istnieje funkcja random(), chyba każdy wie o co chodzi.
Jeśli nie, chodziło mi o randomowe czyli losowe ruchy :)
Czyli skoro w Arduino istnieje też funkcja loop, to kod wykonuje się lupie? No dajcie spokój. Co jest złego w polskim słowie „losowe”, że trzeba używać angielskiego?
Nic nie jest złego w polskim słowie “losowe” Co autor ma na myśli-to robi :)
A co jest złego w tym projekcie, że oceniłeś na 2 * ?
Nie jestem fanem “zaangielszczania” języka polskiego, ale stosuje się też często (zwłaszcza w MOWIE “potoczno-fachowej”) sformułowania/zwroty np. “difoltowe” , “debagowanie”, “tłitowanie” itp.
Proponuję więc nie krytykować autora, który użył słowa “randomowe” podkreślając tym samym nazwę zastosowanej funkcji / rozwiązanie w zastosowanym algorytmie.
Poprawiłem wyświetlanie kodu :)
Pozdrawiam!
Dzięki Wielkie! :)
Miałem właśnie mały problem z jego dodaniem, wychodzil w jednej lini i juz jest okej :) (y)
Pająk straszny, i sam tam będziesz patrzeć żeby coś poprawić, a wtedy będzie problem… Kod też niezbyt ładny, postaraj się wyeliminować powtórzenia takich samych lub podobnych bloków kodu (mam tu na myśli powtarzające się bloki FOR) – znacznie ułatwi to też późniejsze modyfikacje.
Poza tym fajna sprawa na domowe dyskoteki :D
Zamień te ledy na lasery:)
Dobra myśl, dawały by lepszą wiązkę światła
Jest oki
Jak myślicie zamiast Led można wstawić laser i może przyspieszyć poruszanie.
Można zrobić i tak, pomysł dobry :)
Przy odpowiedniej prędkosci wyszło by coś ala projektor laserowy.
Właśnie zastanawiam się, nad szybkością takiego serwo. Laser poruszany mógłby malować kształty na mgle, ścianie. Ciekaw jestem efektu. Robił już ktoś coś takiego?
Myślę że efekt z mgłą wytworzoną przez suchy lód w połączeniu z laserami byłby naprawdę bardzo fajny. Powodzenia w dalszych projektach.
W profesjonalnych laserach poruszane są lusterka z minimalnym skokiem. W prezentowanym układzie pewnie nigdy nie uzyskasz takiej szybkości, aby trwale utrzymać narysowaną figurę.
Witam!
Co prawda jestem tu poraz pierwszy i temat mnie nawet zainteresował. Oprogramowanie OK. Dla mnie działa prawidłowo. Owszem można dodać jeszcze parę bajerów, ale wykonanie żenada. Panowie nauczyliście się montażu urządzeń na płytkach prototypowych (lub stykowych jak kto woli). Pokarzcie urządzenie zrobione profesjonalnie. Ile wytrzymają te linki zasilające diody LED. Poza tym pokazanie schematu z Datasheet, ja sobie obliczę wartości rezystorów, ale z tego Forum korzystają również całkowici laicy. Tak trudno narysować prostą rzecz i podać odpowiednie wartości.
Pozdrawiam.
KoltechSerwis
Nie trzeba laserów mogą być zwykłe LED-y i trochę optyki i do tego zwykły dym z dymiarki. Suchy lód w powiązaniu z pewnymi urządzeniami daje ciężki dym snujący się po ziemi. W tym przypadku lepiej sprawdzi się zwykła dymiarka lub wytwornica mgły.