Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Zaplanuj duży framework
- Krok 2: Tworzenie sprzętu
- Krok 3: Tworzenie siatki
- Krok 4:
- Krok 5: Kod
- Krok 6: Przed kodowaniem…
- Krok 7: Komunikacja szeregowa
Wideo: Ruchoma siatka z lustrem nieskończoności: 7 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
te filmy tworzą wideo i poruszają wideo.
Chcieliśmy pokazać kołyszącą się przestrzeń za pomocą ruchomych siatek i Lustra Nieskończoności, aby skuteczniej pokazać poczucie przestrzeni.
Nasza praca składa się z dwóch akrylowych płyt, przedniej i tylnej, które pokazują ludziom sposób, w jaki bezpośrednio się poruszają, a tylne płyty mają 25 silników krokowych, które faktycznie wytwarzają ruch.
Praca składa się z przedniego panelu, który pokaże przebłyski przestrzeni, drewnianego kija, który wykonuje środkowy ruch, prowadnicy dla prętów i tablicy, która tworzy ruch za pomocą 25 silników krokowych.
25 szczytów sieci podłączonej do 25 silników krokowych wytwarza różne wzory zgodnie z ustawionymi wartościami kodowania. Ponadto firma chciała zmaksymalizować przestrzeń, łącząc przezroczysty akryl z folią przednią półlustrzaną, lusterkiem tylnym i podświetlanym na czarno lustrem Infinity. Różne wzory animacji tworzone są na podstawie fal i szarości, które powstają na podstawie fal wody.
Kieszonkowe dzieci
Kieszonkowe dzieci
1. UV LED 12 V 840 cm
2. Guma biała 12mm 750 cm
3. Arduino mega 2560 x2
4. Sterownik silnika x25
5. Silnik krokowy x25
6. Kabel bipolarny do silnika krokowego x25
7. Drewniany cylinder x25
8.pcv (9mm) x25
9. Wiosna x 25
10.akryl 700mm * 700mm
11. Połowa folia lustrzana 1524 mm * 1 M
12. żyłka wędkarska;
13. Moc 12 V 12,5 A, 12 V 75 A
14. koło rozrządu (druk 3d) x 25
Krok 1: Zaplanuj duży framework
Kiedy zaczynamy, musimy zaplanować i narysować duże ramy. więc przygotowaliśmy plik pdf z akrylową ramą ogólną i plikiem stl koła pasowego rozrządu (co umieściliśmy przed silnikiem krokowym do gwintu wiatrowego, który może ciągnąć pręt z drewna środkowego).
z akrylową ramą ogólną i kołem zębatym musimy najpierw wykonać plik stl i druk 3d.
Krok 2: Tworzenie sprzętu
pudełko1
1. Umieść 2T akrylową czarną stronę (nr 1) na podłodze i przymocuj 5T akrylową czarną stronę (nr 2) na górze. Dodaj czarną siatkę akrylową 5T (nr 3) i przymocuj ją za pomocą kleju akrylowego.
pudełko2
2. Spryskaj wodą przezroczystą płytę akrylową i górną folią półlustrzaną. Pół lusterka toczy kartę, aby nie bulgotała. Zamocuj bok (2) i folię akrylową (1). Połączonego akrylowego występu i luster akrylowych (nr 1) nie należy mocować z boku. Tymczasowo zamocuj go taśmą (do naprawy żyłki lub remontu wnętrza).
Krok 3: Tworzenie siatki
1. Drewniana kolumna ma rozmiar 12 mm. Wywierć otwór na końcu, aby umożliwić wejście żyłki.
2. Przymocuj płyty akrylowe z drugiej strony perforowanej drewnianej kolumny za pomocą kleju.
3. Przełóż gumkę z tyłu drewnianego słupka i włóż do niego sprężynę.
4. Ogólny kształt
Krok 4:
1. Numer połączenia Arduino Mega 2560 Pin
2. Podziel energię elektryczną na dwie części
3. Silnik krokowy i obwód sterownika silnika
4. Dwa Arduino mega2560s są połączone przez skrzyżowanie TX i RX w celu komunikacji szeregowej.
Krok 5: Kod
#włączać
StepperMulti stepper (200, 2, 3, 4, 5); // numeracja silników krokowych StepperMulti stepper2(200, 6, 7, 8, 9); StepperMulti stepper3(200, 10, 11, 12, 13); StepperMulti stepper4(200, A0, A1, A2, A3); StepperMulti stepper5(200, A4, A5, A6, A7); StepperMulti stepper6(200, 22, 23, 24, 25); KrokowyWielokrokowy7(200, 26, 27, 28, 29); KrokowyWielokrokowy8(200, 30, 31, 32, 33); KrokowyWielokrokowy9(200, 34, 35, 36, 37); StepperMulti stepper10(200, 38, 39, 40, 41); StepperMulti stepper11(200, 42, 43, 44, 45); KrokowyWielokrokowy12(200, 46, 47, 48, 49); KrokowyWielokrokowy13(200, 50, 51, 52, 53); uint32_t on_timer = millis(); uint32_t set_timer1 = mili(); uint32_t set_timer2 = millis(); uint32_t set_timer3 = millis(); uint32_t set_timer4 = mili(); uint32_t set_timer5 = mili(); uint32_t set_timer6 = mili(); uint32_t set_timer7 = mili(); uint32_t set_timer8 = millis(); uint32_t set_timer9 = millis(); uint32_t set_timer10 = mili(); liczba int = 0; int init_set_speed
pusta konfiguracja()
Serial1.początek (115200); //komunikacja szeregowa Serial.begin(9600); stepper.setSpeed(init_set_speed); stepper2.setSpeed(init_set_speed); stepper3.setSpeed(init_set_speed); stepper4.setSpeed(init_set_speed); stepper5.setSpeed(init_set_speed); stepper6.setSpeed(init_set_speed); stepper7.setSpeed(init_set_speed); stepper8.setSpeed(init_set_speed); stepper9.setSpeed(init_set_speed); stepper10.setSpeed(init_set_speed); stepper11.setSpeed(init_set_speed); stepper12.setSpeed(init_set_speed); stepper13.setSpeed(init_set_speed); } int PRĘDKOŚĆ = 200; // nieważna pętla prędkości silnika() { //////////////////////////////////// jeśli (millis() - set_timer1 < 6000) { // Silnik krokowy 13 porusza się od 1500 do 6000 sekund.< if (millis() - on_timer < 1500) { stepper13.setStep(SPEED); } else if (millis() - on_timer < 3000) { stepper13.setStep(-SPEED); //(-SPEED) oznacza odwrotną rotację } else if (millis() - on_timer < 4500) { stepper13.setStep(SPEED); } else if (millis() - on_timer 1000) { Serial1.write(0x01); liczba = 1; } } //////////////////////// if (millis() - set_timer2 1000) { if (millis() - on_timer < 2500) { stepper7.setStep (PRĘDKOŚĆ); stepper8.setStep(PRĘDKOŚĆ); stepper9.setStep(PRĘDKOŚĆ); stepper12.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 4000) { stepper7.setStep(-SPEED); stepper8.setStep(-PRĘDKOŚĆ); stepper9.setStep(-PRĘDKOŚĆ); stepper12.setStep(-PRĘDKOŚĆ); } else if (millis() - on_timer < 5500) { stepper7.setStep(SPEED); stepper8.setStep(PRĘDKOŚĆ); stepper9.setStep(PRĘDKOŚĆ); stepper12.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 7000) { stepper7.setStep(-SPEED); stepper8.setStep(-PRĘDKOŚĆ); stepper9.setStep(-PRĘDKOŚĆ); stepper12.setStep(-PRĘDKOŚĆ); } else { stepper7.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper12.setStep(0); } } else { stepper7.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper12.setStep(0); } if (millis() - set_timer2 1000) { if (millis() - on_timer < 2500) { stepper2.setStep(SPEED); stepper5.setStep(-PRĘDKOŚĆ); stepper6.setStep(PRĘDKOŚĆ); stepper7.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 4000) { stepper2.setStep(-SPEED); stepper5.setStep(PRĘDKOŚĆ); stepper6.setStep(-PRĘDKOŚĆ); stepper7.setStep(-PRĘDKOŚĆ); } else if (millis() - on_timer < 5500) { stepper2.setStep(SPEED); stepper5.setStep(-PRĘDKOŚĆ); stepper6.setStep(PRĘDKOŚĆ); stepper7.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 7000) { stepper2.setStep(-SPEED); stepper5.setStep(PRĘDKOŚĆ); stepper6.setStep(-PRĘDKOŚĆ); stepper7.setStep(-PRĘDKOŚĆ); } else { stepper2.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper7.setStep(0); } } else { stepper2.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper7.setStep(0); } /////////////////////////////////////////////// Jeśli (millis() - set_timer3 2000) { if (millis() - on_timer < 3500) { stepper.setStep(SPEED); stepper2.setStep(PRĘDKOŚĆ); stepper3.setStep(PRĘDKOŚĆ); stepper4.setStep(PRĘDKOŚĆ); stepper5.setStep(PRĘDKOŚĆ); stepper6.setStep(PRĘDKOŚĆ); stepper10.setStep(PRĘDKOŚĆ); stepper11.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 5000) { stepper.setStep(-SPEED); stepper2.setStep(-PRĘDKOŚĆ); stepper3.setStep(-PRĘDKOŚĆ); stepper4.setStep(-PRĘDKOŚĆ); stepper5.setStep(-PRĘDKOŚĆ); stepper6.setStep(-PRĘDKOŚĆ); stepper10.setStep(-PRĘDKOŚĆ); stepper11.setStep(-PRĘDKOŚĆ); } else if (millis() - on_timer < 6500) { stepper.setStep(SPEED); stepper2.setStep(PRĘDKOŚĆ); stepper3.setStep(PRĘDKOŚĆ); stepper4.setStep(PRĘDKOŚĆ); stepper5.setStep(PRĘDKOŚĆ); stepper6.setStep(PRĘDKOŚĆ); stepper10.setStep(PRĘDKOŚĆ); stepper11.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 8000) { stepper.setStep(-SPEED); stepper2.setStep(-PRĘDKOŚĆ); stepper3.setStep(-PRĘDKOŚĆ); stepper4.setStep(-PRĘDKOŚĆ); stepper5.setStep(-PRĘDKOŚĆ); stepper6.setStep(-PRĘDKOŚĆ); stepper10.setStep(-PRĘDKOŚĆ); stepper11.setStep(-PRĘDKOŚĆ); } else { stepper.setStep(0); stepper2.setStep(0); stepper3.setStep(0); stepper4.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper10.setStep(0); stepper11.setStep(0); } } else { stepper.setStep(0); stepper2.setStep(0); stepper3.setStep(0); stepper4.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper10.setStep(0); stepper11.setStep(0); } if (millis() - set_timer3 2000) { if (millis() - on_timer < 3500) { stepper3.setStep(SPEED); stepper4.setStep(PRĘDKOŚĆ); stepper8.setStep(PRĘDKOŚĆ); stepper9.setStep(PRĘDKOŚĆ); stepper10.setStep(PRĘDKOŚĆ); stepper11.setStep(PRĘDKOŚĆ); stepper12.setStep(PRĘDKOŚĆ); stepper13.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 5000) { stepper3.setStep(-SPEED); stepper4.setStep(-PRĘDKOŚĆ); stepper8.setStep(-PRĘDKOŚĆ); stepper9.setStep(-PRĘDKOŚĆ); stepper10.setStep(-PRĘDKOŚĆ); stepper11.setStep(-PRĘDKOŚĆ); stepper12.setStep(-PRĘDKOŚĆ); stepper13.setStep(-PRĘDKOŚĆ); } else if (millis() - on_timer < 6500) { stepper3.setStep(SPEED); stepper4.setStep(PRĘDKOŚĆ); stepper8.setStep(PRĘDKOŚĆ); stepper9.setStep(PRĘDKOŚĆ); stepper10.setStep(PRĘDKOŚĆ); stepper11.setStep(PRĘDKOŚĆ); stepper12.setStep(PRĘDKOŚĆ); stepper13.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 8000) { stepper3.setStep(-SPEED); stepper4.setStep(-PRĘDKOŚĆ); stepper8.setStep(-PRĘDKOŚĆ); stepper9.setStep(-PRĘDKOŚĆ); stepper10.setStep(-PRĘDKOŚĆ); stepper11.setStep(-PRĘDKOŚĆ); stepper12.setStep(-PRĘDKOŚĆ); stepper13.setStep(-PRĘDKOŚĆ); } else { stepper3.setStep(0); stepper4.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper10.setStep(0); stepper11.setStep(0); stepper12.setStep(0); stepper13.setStep(0); } } else { stepper3.setStep(0); stepper4.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper10.setStep(0); stepper11.setStep(0); stepper12.setStep(0); stepper13.setStep(0); }/////////////////////////////////stepper.moveStep(); stepper2.moveStep(); stepper3.moveStep(); stepper4.moveStep(); stepper5.moveStep(); stepper6.moveStep(); stepper7.moveStep(); stepper8.moveStep(); stepper9.moveStep(); stepper10.moveStep(); stepper11.moveStep(); stepper12.moveStep(); stepper13.moveStep(); }
pierwsze kodowanie
oraz..
#włączać
StepperMulti stepper (200, 2, 3, 4, 5); StepperMulti stepper2(200, 6, 7, 8, 9); StepperMulti stepper3(200, 10, 11, 12, 13); StepperMulti stepper4(200, A0, A1, A2, A3); StepperMulti stepper5(200, A4, A5, A6, A7); StepperMulti stepper6(200, 22, 23, 24, 25); KrokowyWielokrokowy7(200, 26, 27, 28, 29); KrokowyWielokrokowy8(200, 30, 31, 32, 33); KrokowyWielokrokowy9(200, 34, 35, 36, 37); StepperMulti stepper10(200, 38, 39, 40, 41); KrokowyWielokrokowy11(200, 42, 43, 44, 45); KrokowyWielokrokowy12(200, 46, 47, 48, 49); KrokowyWielokrokowy13(200, 50, 51, 52, 53); uint32_t on_timer = millis(); uint32_t set_timer1 = millis(); uint32_t set_timer2 = millis(); uint32_t set_timer3 = millis(); uint32_t set_timer4 = mili(); uint32_t set_timer5 = mili(); uint32_t set_timer6 = mili(); uint32_t set_timer7 = mili(); uint32_t set_timer8 = millis(); uint32_t set_timer9 = mili(); uint32_t set_timer10 = mili(); liczba int = 0; int init_set_speed = 10; void setup() Serial1.begin(115200); Serial.początek(9600); stepper.setSpeed(init_set_speed); stepper2.setSpeed(init_set_speed); stepper3.setSpeed(init_set_speed); stepper4.setSpeed(init_set_speed); stepper5.setSpeed(init_set_speed); stepper6.setSpeed(init_set_speed); stepper7.setSpeed(init_set_speed); stepper8.setSpeed(init_set_speed); stepper9.setSpeed(init_set_speed); stepper10.setSpeed(init_set_speed); stepper11.setSpeed(init_set_speed); stepper12.setSpeed(init_set_speed); stepper13.setSpeed(init_set_speed); } int PRĘDKOŚĆ = 200; pusta pętla () {
/////////////////////////////////////
if (millis() - set_timer1 < 6000) { if (millis() - on_timer < 1500) { stepper13.setStep(SPEED); } else if (millis() - on_timer < 3000) { stepper13.setStep(-SPEED); } else if (millis() - on_timer < 4500) { stepper13.setStep(SPEED); } else if (millis() - on_timer 1000) { Serial1.write(0x01); liczba = 1; } } //////////////////////// if (millis() - set_timer2 1000) { if (millis() - on_timer < 2500) { stepper7.setSte ㄴp(PRĘDKOŚĆ); stepper8.setStep(PRĘDKOŚĆ); stepper9.setStep(PRĘDKOŚĆ); stepper12.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 4000) { stepper7.setStep(-SPEED); stepper8.setStep(-PRĘDKOŚĆ); stepper9.setStep(-PRĘDKOŚĆ); stepper12.setStep(-PRĘDKOŚĆ); } else if (millis() - on_timer < 5500) { stepper7.setStep(SPEED); stepper8.setStep(PRĘDKOŚĆ); stepper9.setStep(PRĘDKOŚĆ); stepper12.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 7000) { stepper7.setStep(-SPEED); stepper8.setStep(-PRĘDKOŚĆ); stepper9.setStep(-PRĘDKOŚĆ); stepper12.setStep(-PRĘDKOŚĆ); } else { stepper7.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper12.setStep(0); } } else { stepper7.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper12.setStep(0); } if (millis() - set_timer2 1000) { if (millis() - on_timer < 2500) { stepper2.setStep(SPEED); stepper5.setStep(-PRĘDKOŚĆ); stepper6.setStep(PRĘDKOŚĆ); stepper7.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 4000) { stepper2.setStep(-SPEED); stepper5.setStep(PRĘDKOŚĆ); stepper6.setStep(-PRĘDKOŚĆ); stepper7.setStep(-PRĘDKOŚĆ); } else if (millis() - on_timer < 5500) { stepper2.setStep(SPEED); stepper5.setStep(-PRĘDKOŚĆ); stepper6.setStep(PRĘDKOŚĆ); stepper7.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 7000) { stepper2.setStep(-SPEED); stepper5.setStep(PRĘDKOŚĆ); stepper6.setStep(-PRĘDKOŚĆ); stepper7.setStep(-PRĘDKOŚĆ); } else { stepper2.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper7.setStep(0); } } else { stepper2.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper7.setStep(0); } /////////////////////////////////////////////// Jeśli (millis() - set_timer3 2000) { if (millis() - on_timer < 3500) { stepper.setStep(SPEED); stepper2.setStep(PRĘDKOŚĆ); stepper3.setStep(PRĘDKOŚĆ); stepper4.setStep(PRĘDKOŚĆ); stepper5.setStep(PRĘDKOŚĆ); stepper6.setStep(PRĘDKOŚĆ); stepper10.setStep(PRĘDKOŚĆ); stepper11.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 5000) { stepper.setStep(-SPEED); stepper2.setStep(-PRĘDKOŚĆ); stepper3.setStep(-PRĘDKOŚĆ); stepper4.setStep(-PRĘDKOŚĆ); stepper5.setStep(-PRĘDKOŚĆ); stepper6.setStep(-PRĘDKOŚĆ); stepper10.setStep(-PRĘDKOŚĆ); stepper11.setStep(-PRĘDKOŚĆ); } else if (millis() - on_timer < 6500) { stepper.setStep(SPEED); stepper2.setStep(PRĘDKOŚĆ); stepper3.setStep(PRĘDKOŚĆ); stepper4.setStep(PRĘDKOŚĆ); stepper5.setStep(PRĘDKOŚĆ); stepper6.setStep(PRĘDKOŚĆ); stepper10.setStep(PRĘDKOŚĆ); stepper11.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 8000) { stepper.setStep(-SPEED); stepper2.setStep(-PRĘDKOŚĆ); stepper3.setStep(-PRĘDKOŚĆ); stepper4.setStep(-PRĘDKOŚĆ); stepper5.setStep(-PRĘDKOŚĆ); stepper6.setStep(-PRĘDKOŚĆ); stepper10.setStep(-PRĘDKOŚĆ); stepper11.setStep(-PRĘDKOŚĆ); } else { stepper.setStep(0); stepper2.setStep(0); stepper3.setStep(0); stepper4.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper10.setStep(0); stepper11.setStep(0); } } else { stepper.setStep(0); stepper2.setStep(0); stepper3.setStep(0); stepper4.setStep(0); stepper5.setStep(0); stepper6.setStep(0); stepper10.setStep(0); stepper11.setStep(0); } if (millis() - set_timer3 2000) { if (millis() - on_timer < 3500) { stepper3.setStep(SPEED); stepper4.setStep(PRĘDKOŚĆ); stepper8.setStep(PRĘDKOŚĆ); stepper9.setStep(PRĘDKOŚĆ); stepper10.setStep(PRĘDKOŚĆ); stepper11.setStep(PRĘDKOŚĆ); stepper12.setStep(PRĘDKOŚĆ); stepper13.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 5000) { stepper3.setStep(-SPEED); stepper4.setStep(-PRĘDKOŚĆ); stepper8.setStep(-PRĘDKOŚĆ); stepper9.setStep(-PRĘDKOŚĆ); stepper10.setStep(-PRĘDKOŚĆ); stepper11.setStep(-PRĘDKOŚĆ); stepper12.setStep(-PRĘDKOŚĆ); stepper13.setStep(-PRĘDKOŚĆ); } else if (millis() - on_timer < 6500) { stepper3.setStep(SPEED); stepper4.setStep(PRĘDKOŚĆ); stepper8.setStep(PRĘDKOŚĆ); stepper9.setStep(PRĘDKOŚĆ); stepper10.setStep(PRĘDKOŚĆ); stepper11.setStep(PRĘDKOŚĆ); stepper12.setStep(PRĘDKOŚĆ); stepper13.setStep(PRĘDKOŚĆ); } else if (millis() - on_timer < 8000) { stepper3.setStep(-SPEED); stepper4.setStep(-PRĘDKOŚĆ); stepper8.setStep(-PRĘDKOŚĆ); stepper9.setStep(-PRĘDKOŚĆ); stepper10.setStep(-PRĘDKOŚĆ); stepper11.setStep(-PRĘDKOŚĆ); stepper12.setStep(-PRĘDKOŚĆ); stepper13.setStep(-PRĘDKOŚĆ); } else { stepper3.setStep(0); stepper4.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper10.setStep(0); stepper11.setStep(0); stepper12.setStep(0); stepper13.setStep(0); } } else { stepper3.setStep(0); stepper4.setStep(0); stepper8.setStep(0); stepper9.setStep(0); stepper10.setStep(0); stepper11.setStep(0); stepper12.setStep(0); stepper13.setStep(0); }/////////////////////////////////stepper.moveStep(); stepper2.moveStep(); stepper3.moveStep(); stepper4.moveStep(); stepper5.moveStep(); stepper6.moveStep(); stepper7.moveStep(); stepper8.moveStep(); stepper9.moveStep(); stepper10.moveStep(); stepper11.moveStep(); stepper12.moveStep(); stepper13.moveStep(); }
drugie kodowanie
Krok 6: Przed kodowaniem…
Powinieneś dodać nową bibliotekę związaną z silnikami krokowymi.
Wchodzisz więc na tę stronę i pobierasz nową bibliotekę.
blog.danggun.net/2092
Krok 7: Komunikacja szeregowa
Trzeba zrobić dwa mega-telekomunikacyjne arduino.
if (liczba_startu == 0) {
int Dane = Serial1.read(); Serial.println(Dane); if (Dane == 0x01) { start_count = 1; }
Przede wszystkim potrzebujemy tego kodowania na Maine Arduino Mega.
if (count == 0) { if (millis() - set_timer1 > 1000) { Serial1.write(0x01); liczba = 1; }
Arduino Mega, który odbiera komunikację szeregową, potrzebuje tego kodowania.
Pierwsze kodowanie jest umieszczane w miejscu, w którym ma się poruszać drugie aduino.
Zalecana:
Zegar z lustrem nieskończoności z potencjometrami: 3 kroki
Zegar z lustrem nieskończoności z potencjometrami: Natknąłem się na lustro nieskończoności i stwierdziłem, że jest naprawdę fajne. To zainspirowało mnie do stworzenia lustra nieskończoności, ale potrzebowałem, żeby miało jakiś cel. Postanowiłem więc stworzyć działający zegar z lustrem nieskończoności. To lustro nieskończoności, które pozwala
Robot Amorek z ruchomą głową, światłami i dźwiękiem: 6 kroków
Robot Cupid z ruchomą głową, światłami i dźwiękiem: Zainspirowało mnie dodanie kilku dodatków do uroczego amorka robota, aby uczynić go bardziej żywym, ponieważ jest to robot i jest to również dzień walentynek. Poddaję recyklingowi mój aktywowany światłem obwód odtwarzacza MP3. Ten sam obwód jest również używany w instrukcji Frankenbot
Kalejdoskop z siatką dyfrakcyjną: 7 kroków (ze zdjęciami)
Kalejdoskop z siatką dyfrakcyjną: Kalejdoskopy tworzą imponujące obrazy wizualne, po prostu obracając pokrętło. Oto świetny projekt autorstwa Randofo. Kolorowe wyświetlacze można również tworzyć za pomocą siatek dyfrakcyjnych. Wizualizacje stają się jeszcze bardziej oszałamiające, gdy przekręcisz jedną siatkę dyfrakcyjną
DIY 18650 Siatka ładowania ogniw litowo-jonowych: 7 kroków (ze zdjęciami)
DIY 18650 Siatka do ładowania ogniw litowo-jonowych: Pracowałem nad motoryzacją mojego roweru za pomocą motoreduktora prądu stałego i teraz potrzebuję do tego akumulatora. Tak więc, aby zrobić akumulator, zdecydowałem się na popularne ogniwa litowo-jonowe 18650 z dwóch starych akumulatorów hoverboard.Ponieważ ogniwa są
Zegar z lustrem nieskończoności: 5 kroków (ze zdjęciami)
Zegar z lustrem nieskończoności: Jest to ręcznie robiony zegar głównie do dekoracji. W zegarze jest kilka lampek LED, po włączeniu jest to piękna dekoracja sypialni. Po wyłączeniu jest to małe lusterko. Oczywiście to sam zegar