Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
cześć wszystkim! to jest mój projekt na suwak do aparatu DIY, miałem trudny czas z moim, ale jestem pewien, że jeśli zwrócisz większą uwagę na szczegóły, to zadziała!
teoretycznie powinno to w pełni działać
jeśli zdecydujesz się to zrobić, mam nadzieję, że Ci się spodoba!
Krok 1: Zbierz materiały
Materiały elektroniczne
- Arduino
- dwa serwa 360
- deska do chleba
- rezystory
- przyciski (najlepiej 3)
Materiały budowlane
- dwa kawałki płyty piankowej
- drewniane kawałki kołków (mogą być metalowe)
- drewniane elementy owalne (patrz zdjęcie wprowadzające).
Krok 2: Konfiguracja
to zdjęcie to schemat obwodu
postępuj zgodnie z tym, a Twój projekt zadziała!
Krok 3: Montaż deski do krojenia chleba
- przede wszystkim podłącz plus i masę do płytki stykowej.
- po drugie podłącz dwa serwa… i dwa przewody biegnące do masy i dodatniego, a drugi do pinu, który byś wybrał. (zwróć uwagę, że kod będzie miał szpilki, które wybrałem)..
- następnie zmontuj przyciski… pamiętaj, aby połączyć się z wybranymi pinami, ale kod nie zadziała, jeśli nie użyjesz wybranych przeze mnie pinów. podłącz również przyciski do masy.
- i użyj rezystora 220.
- na koniec, jeśli chcesz użyć monitora LCD, będziesz musiał podłączyć 2 piny do wejścia analogowego i jeden przewód do dodatniego zacisku.
Krok 4: Kod Arduino
#include #include #include
LiquidCrystal_I2C lcd (0x27, 16, 2); // ustaw adres LCD na 0x27 dla 16-znakowego i 2-wierszowego wyświetlacza
Serwo serwoLeft; // Zdefiniuj lewe serwo Servo servoRight; // Zdefiniuj prawe serwo
const int startbut = 8; //pin dla startbut (przycisk startu) const int forwardbut = 12; //pin dla forwardbut (forwardbutton) const int reversebut = 13; //pin dla reversebut (reversebutton) int tim = 500; //wartość czasu opóźnienia int flag = 0; liczba int = 0;
char array1=" witamy "; //ciąg do wydrukowania na wyświetlaczu LCD ("witamy") char array2="push left=LEFT, right=RIGHT !"; //ciąg do wydrukowania na wyświetlaczu LCD ("push left=LEFT, right=RIGHT")
void setup () { servoLeft.attach(10); // Ustaw lewe serwo na pin cyfrowy 10 servoRight.attach(9); // Ustaw prawe serwo na pin cyfrowy 9 servoLeft.write(90); // ustaw serwa na 90 stopni servoRight.write(90); opóźnienie (100);
//zmienia pin na wejścia pinMode(startbut, INPUT); //zainicjuj startbut (przycisk start) jako wejście pinMode(reversebut, INPUT); //zainicjuj reversebut (reversebutton) jako wejście pinMode(forwardbut, INPUT); //zainicjuj forwardbut (forwardbutton) jako dane wejściowe
}
void loop() { // Pętla przez testy ruchu //kod dla monitora LCD if (flaga == 1 && count == 0) { count = 1; lcd.init(); //zainicjuj lcd lcd.backlight(); //otwórz podświetlenie
lcd.setCursor(15, 0); // ustaw kursor na kolumnę 15, wiersz 0 for (int LicznikPozycji1 = 0;LicznikPozycji1 < 26;LicznikPozycji1++) { lcd.scrollDisplayLeft(); //Przewija zawartość wyświetlacza o jedno miejsce w lewo. lcd.print(tablica1[LicznikPozycji1]); //Drukuj komunikat na LCD. opóźnienie(tim); //czekaj 250 mikrosekund } lcd.clear(); //Czyści ekran LCD i umieszcza kursor w lewym górnym rogu. lcd.setCursor(15, 1); //ustaw kursor na kolumnę 15, wiersz 1 for (int positionCounter = 0; positionCounter < 26; positionCounter++) { lcd.scrollDisplayLeft(); //Przewija zawartość wyświetlacza o jedno miejsce w lewo. lcd.print(tablica2[LicznikPozycji]); //Drukuj komunikat na LCD. opóźnienie(tim); //czekaj 250 mikrosekund } lcd.clear(); //Czyści ekran LCD i umieszcza kursor w lewym górnym rogu. } //////////////////////////////////////////////// //////////////////////////////////////////////// ////////////////////////////////////
/sprawdź, czy przyciski zostały naciśnięte if (digitalRead(startbut) == 1) { flag = 1; //flaga zmienna dla przycisku do uruchomienia }
if (flaga == 1){ if(digitalRead(reversebut) == HIGH) //reversebut wciśnięty włączy serwo { reverse(); //zmienna wsteczna dla przycisku reverse } else if(digitalRead(forwardbut) == HIGH) //naciśnięcie przycisku forwardbut włączy serwo { forward(); //zmienna do przodu dla przycisku do przodu } else { stop(); //stop zmienna zatrzymująca ruch serw, gdy przyciski nie są wciśnięte } }
}
// Procedury ruchu do przodu, do tyłu i do zatrzymania void forward() { //polecenie do przodu servoLeft.write(0); //kierunek, w którym obracają się serwa servoRight.write(180); } void stop() { //zatrzymaj polecenie servoLeft.write(90); //zatrzymuje oba serwa w tym samym miejscu, w przeciwnym razie byłyby w różnych pozycjach servoRight.write(90); } void reverse() { //reverse polecenie servoLeft.write(180); //serwa aktywują się w przeciwnym kierunku servoRight.write(0); }
oto kod na sukces! po skonfigurowaniu arduino wszystko powinno działać! i baw się dobrze!
jeśli to nie zadziała, spójrz wstecz na tę instrukcję i sprawdź wszystko!