Skocz do zawartości

greek4

Użytkownicy
  • Zawartość

    3
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O greek4

  • Ranga
    1/10

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Dziekuje za odpowiedz. Zmotywowales mnie. Biore sie za dalsze czytanie
  2. Dziekuje za zainteresowanie, lecz moja programowania nie pozwala mi doprowadzic programu do konca. Pomimo wielu prob wciaz wyskakuja bledy. Niestety czytanie poradnikow tez nie pomoglo. Moze znajdzie ktos chwile aby napisac przykladowy program na ktorym bede mogl sie pouczyc?
  3. Witam. Chcialbym poprosic o pomoc w dokonczeniu kodu do mojego malego projektu. Mianowicie chcialbym zrobic szafke zamykana silnikiem krokowym sterowanym przez arduino. Do mojego projektu wykorzystalem mechanizm osi Z z mojej starej drukarki 3D wraz z silnikiem i stepstickiem, ktory ma byc sterowany za pomoca arduino Nano. Po wcisnieciu przelacznika (takiego od swiatla w pokoju) w pozycji gornej na pin 13 w arduino zostaje podany stan wysoki co prowadzi do obracania sie silnika w prawo i tym samym uniesienie klapy od szafki. Zas wylacznik w pozycji dolnej podaje stan niski na pin 13 co sprawia, ze silnik sie kreci w lewo i zamyka klape. Tyle udalo mi sie zrobic. Schody zaczely sie gdy musze dodac przelaczniki typu endstop aby arduino wiedzialo kiedy ma zatrzymac silnik, poniewaz w tej chwili pracuje nieustannie albo w jedna albo w druga strone. Nie mam pojecia co nalezy dopisac lub co zmienic w istniejacym kodzie aby to dzialalo jak nalezy. Z gory dziekuje za pomoc. Oto moj kod : // Sterownik silnika krokowego do zamykania szafki // Arduino nano + silnik nema ze stepstickiem int Index; const int buttonPin = 13; // Przelacznik bistabilny int buttonState = 0; // Status przelacznika void setup() { pinMode(8, OUTPUT); //Enable pinMode(2, OUTPUT); //Step pinMode(5, OUTPUT); //Direction pinMode(buttonPin, INPUT); //Wylacznik digitalWrite(8,LOW); } void loop() { // Odczyt stanu przelacznika: buttonState = digitalRead(buttonPin); // Jesli przelacznik jest w pozycji gornej -5V- to stan wynosi HIGH - Obrot silnika w prawo: if (buttonState == HIGH) digitalWrite(5,HIGH); for(Index = 0; Index < 200; Index++) { digitalWrite(2,HIGH); delayMicroseconds(500); digitalWrite(2,LOW); delayMicroseconds(500); } // Odczyt stanu przelacznika: buttonState = digitalRead(buttonPin); // Jezeli przelacznik jest w pozycji dolnej -GND- to stan wynosi LOW - Obrot silnika w lewo: if (buttonState == LOW) digitalWrite(5,LOW); for(Index = 0; Index < 2000; Index++) { digitalWrite(2,HIGH); delayMicroseconds(500); digitalWrite(2,LOW); delayMicroseconds(500); } }
×
×
  • Utwórz nowe...