Teraz jest niedziela, 10 stycznia 2021, 19:54

Strefa czasowa: UTC + 1




Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 39 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
 Tytuł: Arduino, arduino ....
PostNapisane: czwartek, 8 marca 2018, 22:32 
Offline
modelarz
Avatar użytkownika

Dołączył(a): poniedziałek, 19 marca 2012, 11:26
Posty: 1552
Wiek: 56
Lokalizacja: Peterborough, UK
Panowie ... i Panie,
Potrzebuję wsparcia w kwestii takiej:
napisałem wstępnie coś co w zasadzie porusza mi motorem (stepper)
ale narazie tylko kręci cały czas podczas gdy ja chciałbym aby kręcił o określoną ilość stepów wykonywał jakieś zadanie, np zapalał diode po czym znowu wykonywał określoną ilość kroków i tak do wykonania pełnego obrotu.
Możecie mi pomóc?
listing poniżej to moje nieudolne próby.
(nie hahać się bo ja dopiero się zacząłem bawić tymi Arduinami).
Kod:
#include <Stepper.h>

const int stepsPerRevolution = 250;  // change this to fit the number of steps per revolution
// for your motor


// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

int stepCount = 400;  // number of steps the motor has taken
int inPin = 2;int outPin = 13;
int state = HIGH;      // the current state of the output pin
int reading;           // the current reading from the input pin
int previous = LOW;
long time = 0;         // the last time the output pin was toggled
long debounce = 200;
void setup() {
  pinMode(inPin, INPUT);
  pinMode(outPin, OUTPUT);
}

void loop() {
  reading = digitalRead(inPin);
 
    // if the input just went from LOW and HIGH and we've waited long enough
  // to ignore any noise on the circuit, toggle the output pin and remember
  // the time
  if (reading == HIGH && previous == LOW && millis() - time > debounce) {
    if (state == HIGH)
      state = LOW;
    else
      state = HIGH;

    time = millis();   
  }

  digitalWrite(outPin, state);

  previous = reading;
  // read the sensor value:
  int sensorReading = analogRead(A0);
  // map it to a range from 0 to 100:
  int motorSpeed = map(sensorReading, 0, 350, 0, 200);
  // set the motor speed:
  if (motorSpeed > 10) {
    myStepper.setSpeed(motorSpeed);
    // step 1/100 of a revolution:
    myStepper.step(stepsPerRevolution / 50
    );
  }
}


po chwili zabawy zrobiłem coś co wykonuje kawałek po kawałku ale to strasznie prymitywne
Kod:
#include <Stepper.h>

const int stepsPerRevolution = 250;
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
int stepCount = 400;
int inPin = 2;int outPin = 13;
int state = HIGH;
int reading;
int previous = LOW;
long time = 0;
long debounce = 500;
void setup() {
  pinMode(inPin, INPUT);
  pinMode(outPin, OUTPUT);
}

void loop(void) {
  ledCheck ();
}

void stepper(){
  int sensorReading = analogRead(A0);
  int motorSpeed = map(sensorReading, 0, 350, 0, 200);
  if (motorSpeed > 10) {
    myStepper.setSpeed(motorSpeed);
    myStepper.step(stepsPerRevolution / 25);
  }
}

void ledCheck () {
    reading = digitalRead(inPin);Serial.print('test');
  if (reading == HIGH && previous == LOW && millis() - time > debounce) {
     if (state == HIGH){
        state = LOW;stepper();
      }else{
        state = HIGH;
        stepper();delay(500);
        time = millis();   
  }
}
digitalWrite(outPin, state);
  previous = reading;
}

_________________
Pozdrawiam
RobUk
HyperBipe 900, AMBeR III "Experience", Spitfire MKIIb, Sbach342, White Sheep 480 Quad, RoboFlat 270, AOKFly 230, Realacc 210
"Nie ważne jak zaczynasz, ważne jak ... kończysz ..." 3W Kasta


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: czwartek, 8 marca 2018, 23:51 
Offline
Moderator
Avatar użytkownika

Dołączył(a): czwartek, 12 kwietnia 2012, 10:46
Posty: 5441
Wiek: 42
Lokalizacja: Kraków
Ja mam 3 rady.
Rada numer 1
Rada numer 2
Rada numer 3

To wszystko, krok po kroku, z wielokrotnymi powtórzeniami i aż do znudzenia.

_________________
pozdrawiam
Hubert
https://www.banggood.com/?p=WQ230911983820130156


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: piątek, 9 marca 2018, 08:39 
Offline
modelarz
Avatar użytkownika

Dołączył(a): poniedziałek, 19 marca 2012, 11:26
Posty: 1552
Wiek: 56
Lokalizacja: Peterborough, UK
Aaaa ... dzięki Ellipsis, no patrz, nie wpadłem na to ...

_________________
Pozdrawiam
RobUk
HyperBipe 900, AMBeR III "Experience", Spitfire MKIIb, Sbach342, White Sheep 480 Quad, RoboFlat 270, AOKFly 230, Realacc 210
"Nie ważne jak zaczynasz, ważne jak ... kończysz ..." 3W Kasta


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: piątek, 9 marca 2018, 08:54 
Offline
modelarz
Avatar użytkownika

Dołączył(a): piątek, 7 maja 2010, 18:38
Posty: 1014
Wiek: 51
Lokalizacja: Tarnowskie Góry
RobUk, ja mam pytanie - jak u ciebie ogólnie z programowaniem w C/C++ ?
Bo Arduino jest generalnie proste, ale trzeba się nauczyć 2 rzeczy:
1. Dobrze umieć w C/C++
2. Uświadomić sobie, że program Arduino działa w nieskończonej pętli. To nie jest program komputerowy, który się kiedyś kończy, albo może nic nie robić i czekać na klik użytkownika.
Tu trzeba się nauczyć mechanizmów (flagi, przerwania itp.), które pozwolą programowi działać ciągle i w tzw. "międzyczasie" obsłużyć to czy tamto.

A jedno i drugie wymaga praktyki :)

_________________
Pozdrawiam
Michał


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: piątek, 9 marca 2018, 09:14 
Offline
Moderator
Avatar użytkownika

Dołączył(a): czwartek, 12 kwietnia 2012, 10:46
Posty: 5441
Wiek: 42
Lokalizacja: Kraków
Z tymi książkami się nie naśmiewam. To świetne pozycje, w których jest opisane to co widzę, że Ci już umknęło. Tu się nie da pomijać wiedzy trzeba iść po kolei cały czas podnosząc poprzeczkę. Jak na początek wybrałeś trudniejszy program, który Cię nie nauczy niestety wiele.

_________________
pozdrawiam
Hubert
https://www.banggood.com/?p=WQ230911983820130156


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: piątek, 9 marca 2018, 09:23 
Online
Moderator
Avatar użytkownika

Dołączył(a): sobota, 20 marca 2010, 17:25
Posty: 3493
Wiek: 33
Lokalizacja: Warszawa
1. nie spotkałem nigdy silnika który ma 250kroków na obrót, widzialem za to 7.5*, 1.8*, 0.9*
2. Przykład z exampla biblioteki Stepper

Kod:
#include <Stepper.h>

const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
const int stepsPerTurn =50;
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

int stepCount = 0;         // number of steps the motor has taken

void setup() {
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {

  myStepper.step(stepsPerTurn );   // to wykona okreslona liczbe krokow
  delay(2000); // chwile poczekac
 
// tu wstaw swoja akcje, zapalenie diody itp

  myStepper.step(stepsPerTurn );   // to wykona okreslona liczbe krokow
  delay(2000); // chwile poczekac
 
// tu wstaw swoja akcje

  myStepper.step(stepsPerTurn );   // to wykona okreslona liczbe krokow
  delay(2000); // chwile poczekac
 
// tu wstaw swoja akcje

  myStepper.step(stepsPerTurn );   // to wykona okreslona liczbe krokow
  delay(2000); // chwile poczekac
 
// tu wstaw swoja akcje
 
  for(;;){} // nieskonczona petla zeby zablokowac dalsze wykonywanie programu
}


Powyższe oczywiście pisane na kolanie w notatniku na podstawie exampla, więc może się nie kompilować, ale ideowo prezentuje to co chcesz osiągnąć.


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: piątek, 9 marca 2018, 15:32 
Offline
modelarz
Avatar użytkownika

Dołączył(a): poniedziałek, 19 marca 2012, 11:26
Posty: 1552
Wiek: 56
Lokalizacja: Peterborough, UK
Rozumiem, właśnie wczoraj rozpocząłem edukowanie. Po obejżeniu kilku tutoriali i wysłuchaniu doś obszernego "słuchowiska" na temat programowania arduino, co nieco mi się rozjaśniło i skleciłem program który kręci kawałek, zapala led i jedzie kolejny kawałek.
trochę oczywiście prostacki powiedział bym ale na początek .... może być.

Zasadniczo to moje boje z "C" mogę śmiało powiedzieć właśnie się rozpoczęły. Wiadomość, że w tym przypadku to pętla i już też wiele wyjaśnia.

Jednym słowem ... albo nie, jedno to za mało, biorę się!

Dzięki Szymon, w międzyczasie wykombinowałem już coś co działa mniej więcej jak chciałem ale to co pokazałeś jest znacznie czytelniejsze i zdecydowanie bardziej przystępne.
A jak powinienem przygotować pętlę, jeśli potrzebuję wykonać jeden pełny obrót osi ale podzielony na np 36 kawałków ? mam zrobić 36 razy to samo ??
Trochę to będzie prymitywne. Myślałem też o zastosowaniu np kilku "switchy" i zależnie od tego który wcisnę będzie realizował określoną ilość kroków/obrót.
A propo's tych wartości to one są faktycznie tak trochę z kosmosu. Doświadczalnie zmieniałem aż w końcu cos się zaczęło dziać i dopiero jak ustawiłem tak wysoką wartość to silnik drgnął.
Dzisiaj popróbuję już uwzględniając wszystko to czego się dowiedziałem/nauczyłem.

_________________
Pozdrawiam
RobUk
HyperBipe 900, AMBeR III "Experience", Spitfire MKIIb, Sbach342, White Sheep 480 Quad, RoboFlat 270, AOKFly 230, Realacc 210
"Nie ważne jak zaczynasz, ważne jak ... kończysz ..." 3W Kasta


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: sobota, 10 marca 2018, 01:39 
Offline
modelarz
Avatar użytkownika

Dołączył(a): poniedziałek, 19 marca 2012, 11:26
Posty: 1552
Wiek: 56
Lokalizacja: Peterborough, UK
Chwilę się pobawiłem i w końcu zrobiłem działający programik ale nie bardzo jeszcze kumam jak zrobić, żeby mi czytał stan przycisku i w momencie jego wciśnięcia rozpoczynał pracę a nie leciał od właczenia.
Fajnie działa!
Robi pełny obrót podzielony na około 40 sekwencji w trakcie których zatrzymuje się na około dwie sekundy, w tym czasie wyzwala migawkę i po chwili jedzie dalej :P

Chciałbym jednak pójść o krok dalej i np dać 4 przyciski i wciśnięcie każdego z nich będzie odpalało cykl ale z inną ilością kroków/sekwencji.
Podpowiedzcie jak mogę to zrobić proszę ?
Tak wygląda mój kod:
#include <Stepper.h>
int i = 1;
const int stepsPerRevolution = 36;
int LED = 12;
int CAMERA = 13;
Stepper myStepper(stepsPerRevolution, 8,9,10,11);
void setup() {
pinMode(CAMERA,OUTPUT);
myStepper.setSpeed(300);
Serial.begin(9600);
digitalWrite(CAMERA,LOW);
}
void loop() {
String message = "Klatka ";
Serial.println(message + i);
myStepper.step(stepsPerRevolution);
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(CAMERA, HIGH);
delay(500);
digitalWrite(LED, LOW);
digitalWrite(CAMERA,LOW);
delay(1000);
i=i+1;
if (i>=40){
Serial.println("I'm done");
for (int j;;){}
}
}

_________________
Pozdrawiam
RobUk
HyperBipe 900, AMBeR III "Experience", Spitfire MKIIb, Sbach342, White Sheep 480 Quad, RoboFlat 270, AOKFly 230, Realacc 210
"Nie ważne jak zaczynasz, ważne jak ... kończysz ..." 3W Kasta


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: sobota, 10 marca 2018, 08:04 
Offline
modelarz
Avatar użytkownika

Dołączył(a): piątek, 7 maja 2010, 18:38
Posty: 1014
Wiek: 51
Lokalizacja: Tarnowskie Góry
Mówiłem o flagach, tak?
Robisz jakąś zmienną typu 0/nie-0. W procedurze setup ustawiasz ją na 0.
Flagę ustawiasz/zerujesz/zmieniasz od przycisku (jeszcze przy okazji poczytaj co to jest debouncing :) )
Jeśli ona jest niezerowa, to wykonuje się to co chcesz żeby się wykonywało, w sensie:

Kod:
if (flaga)
        {
            procedura();
        }


Można użyć jednej flagi o zmiennej wartości do wyzwalania różnych procedur, wtedy flaga jest parametrem podprogramu albo warunkiem wywołania - to już zależy jak się to napisze, np.

Kod:
if (flaga == 1)
        {
            procedura_1();
        }

if (flaga == 2)
        {
            procedura_2();
        }


albo też

Kod:
if (flaga)
        {
            procedura(flaga);
        }


Naucz się pisać procedury / funkcje z parametrami, nie daje się całego programu do loop() (czy też do main() w programach C) bo to nieeleganckie i nieekonomiczne ;)

_________________
Pozdrawiam
Michał


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: sobota, 10 marca 2018, 09:51 
Offline
modelarz
Avatar użytkownika

Dołączył(a): czwartek, 3 czerwca 2010, 20:17
Posty: 4259
Wiek: 58
Lokalizacja: Wrocław
Delikatnie się wtrącę.
Pisanie programu pozbawionego funkcji czy procedur moim zdaniem nie jest nie eleganckie :) i jest jak najbardziej poprawne, tyle że, faktycznie nieekonomiczne. Jeśli Twój programik będzie miał naście linii to bawienie się w pisanie procedur po kilka linii nie ma większego sensu, choć ludzie też tak piszą. :)

Nie mniej procedury i wywoływane funkcje bardzo ułatwiają pisanie i kontrolę oraz powodują, że kod jest bardziej przejrzysty. Zwłaszcza jeśli program liczyć w setki linii nie wspominając już o dziesiątkach tysięcy linii.
Po prostu łatwiej jest analizować i sprawdzać niewielkie fragmenty kodu (procedur czy funkcji) zamiast analizować program po całości.
I jeszcze mała rada, tyle że nie wie czy dziś jeszcze się tak pisze.
Nazywać procedury czy funkcję od tego do czego służą. Przy sporym kodzie bardzo to ułatwia.
Np. zamiast procedura_1() to procedura_do_obracania(), zapalenie_diody(), wylaczenie_oswietlenia()
Wówczas szybko jesteś w stanie znaleźć w kodzie dany fragment który się wywala lub źle działa.

To takie dywagacje starego już mocno zardzewiałego programisty. ;)

_________________
Pozdrawiam
Konrad P.


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: sobota, 10 marca 2018, 10:01 
Offline
Moderator
Avatar użytkownika

Dołączył(a): czwartek, 12 kwietnia 2012, 10:46
Posty: 5441
Wiek: 42
Lokalizacja: Kraków
O programie pogadali już dużo. Ale przy sterowaniu czymś fizycznym to, co to jest, dużo zmienia. Pokaż jaki masz silnik i jaki drajwer do niego. Bo może się okazać, że biblioteka, z której korzystasz jest do d tzn nie pasuje :)

_________________
pozdrawiam
Hubert
https://www.banggood.com/?p=WQ230911983820130156


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: sobota, 10 marca 2018, 10:31 
Offline
modelarz
Avatar użytkownika

Dołączył(a): piątek, 7 maja 2010, 18:38
Posty: 1014
Wiek: 51
Lokalizacja: Tarnowskie Góry
Konrad, pokaż mi sensowny program mający mniej niż kilkadziesiąt linii - a nawet wtedy nieraz warto coś upakować w funkcjach :)

A te numerki to był przykład, oczywistym jest nazywanie funkcji wg ich funkcji.
Sugeruję przy tym angielskie nazwy funkcji, polski język - jakkolwiek piękny - imho się do tego nie bardzo nadaje, jest zbyt rozwlekły :)

_________________
Pozdrawiam
Michał


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: sobota, 10 marca 2018, 11:07 
Offline
modelarz
Avatar użytkownika

Dołączył(a): czwartek, 3 czerwca 2010, 20:17
Posty: 4259
Wiek: 58
Lokalizacja: Wrocław
Michał to nie do Ciebie była skierowana moja wypowiedź związana z nazwami procedur i nie była to bron Cię krytyka. Ja sobie tylko Twój przykład pozwoliłem wykorzystać do podpowiedzi koledze, który jak widać zaczyna przygodę z kodowaniem. Akurat idealnie to co podałeś pasowało do tego. Jestem pewien, że programiści z doświadczeniem nie numerują sobie procedur. Byłby to obłęd. :)
Ja byłem programistą bazodanowym nie sprzętowym, więc moje przyzwyczajenia są nieco inne z nazewnictwem. :)

_________________
Pozdrawiam
Konrad P.


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: sobota, 10 marca 2018, 17:39 
Offline
modelarz
Avatar użytkownika

Dołączył(a): poniedziałek, 19 marca 2012, 11:26
Posty: 1552
Wiek: 56
Lokalizacja: Peterborough, UK
Dziękuję za wszystkie komentarze, coś tam już się zaczyna wykluwać i nawet już działa. nie jest to jeszcze super ale ... funkcje do jakiej jest przeznaczone realizuje.

W kwestii silnika, no własnie, silnik to bliżej nieokreślony "Moonsun" wydłubany z jakiejś drukarki. stąd to moje zgadywanie z krokami.
Brak jakichkolwiek oznaczeń niestety utrudnia znalezienie jakichkolwiek danych na jego temat.
Toteż zostawię go jak jest i będę brnął trzymając się już znalezionych i sprawdzonych ustawień.
Najbardziej pasował mi do konstrukcji ponieważ jest dość płaski i wystarczająco mocny, żeby obracać stolikiem.
Jeśli chodzi o kontroler to: EasyDriver v4. We wcześniejszych projektach dawał rade.
Będę ćwiczył z przechodzeniem do podprogramu i wykonywaniem polecen, po czym powrót do pętli głównej.

_________________
Pozdrawiam
RobUk
HyperBipe 900, AMBeR III "Experience", Spitfire MKIIb, Sbach342, White Sheep 480 Quad, RoboFlat 270, AOKFly 230, Realacc 210
"Nie ważne jak zaczynasz, ważne jak ... kończysz ..." 3W Kasta


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: niedziela, 11 marca 2018, 16:54 
Offline
modelarz
Avatar użytkownika

Dołączył(a): poniedziałek, 19 marca 2012, 11:26
Posty: 1552
Wiek: 56
Lokalizacja: Peterborough, UK
Panowie,
Czy, żeby mi przyciski działały .... muszę w obwodzie mieć jakieś rezystory i bez nich to nie zadziała ?
Albo ja jestem taki "tempy" albo coś z moim Arduino jest nie halo.
Bo owszem, na wciśnięcie reaguje ale bez wciśnięcia też wyświetla ten sam komunikat na ekranie i trochę mnie to irytuje.
Kiedy podłączam dwa przyciski i mam nadzieję zobaczyć komunikat zależnie od tego który został wciśnięty to jeden mi wyświetla non stop a na drugi reaguje czasem wywalając nie komunikat tylko jakieś przypadkowe znaki.

_________________
Pozdrawiam
RobUk
HyperBipe 900, AMBeR III "Experience", Spitfire MKIIb, Sbach342, White Sheep 480 Quad, RoboFlat 270, AOKFly 230, Realacc 210
"Nie ważne jak zaczynasz, ważne jak ... kończysz ..." 3W Kasta


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: niedziela, 11 marca 2018, 17:06 
Offline
Moderator
Avatar użytkownika

Dołączył(a): czwartek, 12 kwietnia 2012, 10:46
Posty: 5441
Wiek: 42
Lokalizacja: Kraków
A tu co piszą?
https://www.arduino.cc/en/Tutorial/Button

_________________
pozdrawiam
Hubert
https://www.banggood.com/?p=WQ230911983820130156


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: niedziela, 11 marca 2018, 19:59 
Offline
modelarz
Avatar użytkownika

Dołączył(a): poniedziałek, 19 marca 2012, 11:26
Posty: 1552
Wiek: 56
Lokalizacja: Peterborough, UK
Kurcze, no widzisz, jak człowiek "gupi" to nic mu nie zadziała :P
Na szczęście znalazłem "jeden" rezystor akurat 10k i wszystko śmiga. Teraz tylko połączyć wszystko do "kupy" i ....
gotowe :P

_________________
Pozdrawiam
RobUk
HyperBipe 900, AMBeR III "Experience", Spitfire MKIIb, Sbach342, White Sheep 480 Quad, RoboFlat 270, AOKFly 230, Realacc 210
"Nie ważne jak zaczynasz, ważne jak ... kończysz ..." 3W Kasta


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: niedziela, 11 marca 2018, 20:59 
Offline
modelarz
Avatar użytkownika

Dołączył(a): piątek, 7 maja 2010, 18:38
Posty: 1014
Wiek: 51
Lokalizacja: Tarnowskie Góry
oidp można zrobić bez rezystora, używając takiego wbudowanego w procesor. Trzeba ustawić pin w tryb INPUT_PULLUP
https://www.arduino.cc/en/Tutorial/DigitalPins

_________________
Pozdrawiam
Michał


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: niedziela, 11 marca 2018, 23:14 
Offline
modelarz
Avatar użytkownika

Dołączył(a): poniedziałek, 19 marca 2012, 11:26
Posty: 1552
Wiek: 56
Lokalizacja: Peterborough, UK
Poradziłem sobie i nawet działa, w dalszym ciągu jednak nie wiem jak prawidłowo ustawić stepy bo mi skacze jakoś dziwnie to znaczy każdy krok to skok bardziej niż krok :P
Ale sam programik śmiga. Dziękuję za porady.

_________________
Pozdrawiam
RobUk
HyperBipe 900, AMBeR III "Experience", Spitfire MKIIb, Sbach342, White Sheep 480 Quad, RoboFlat 270, AOKFly 230, Realacc 210
"Nie ważne jak zaczynasz, ważne jak ... kończysz ..." 3W Kasta


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Arduino, arduino ....
PostNapisane: poniedziałek, 12 marca 2018, 11:26 
Offline
modelarz
Avatar użytkownika

Dołączył(a): poniedziałek, 19 marca 2012, 11:26
Posty: 1552
Wiek: 56
Lokalizacja: Peterborough, UK
Zapomniałem pokazać kod:
Oto on:
#include <Stepper.h>
int i = 1;
const int stepsPerRevolution = 72;
int inPin1 = 2;

int LED1 = 12;
int LED2 = 4;
int CAMERA = 13;
int val1 = 0;
Stepper myStepper(stepsPerRevolution, 8,9,10,11);

void setup() {
Serial.begin(9600);
pinMode(inPin1,INPUT);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);//Program numer 1
pinMode(CAMERA,OUTPUT);
myStepper.setSpeed(350);

digitalWrite(CAMERA,LOW);
}

void loop() {
val1 = digitalRead(inPin1);
if(val1 == HIGH ){
digitalWrite(LED1, HIGH);
program1(45);
}else{
digitalWrite(LED1, LOW); // LED
}
}

void program1(int shots){
Serial.println("=================");
Serial.println(" Wykonuje Program 1");
Serial.print(" Zdjec "); Serial.println(shots);
Serial.println("=================");
delay(1000);
Serial.println("======= 3 =======");
delay(1000);
Serial.println("======= 2 =======");
delay(1000);
Serial.println("======= 1 =======");
delay(1000);
Serial.println("===== GO! =====");
delay(1000);
digitalWrite(LED1, HIGH);
for(int i=1; i <= shots; i++){
String message = "Zdjecie ";
Serial.println(message + i);
digitalWrite(LED1, LOW);
digitalWrite(CAMERA, HIGH);
delay(500);

digitalWrite(CAMERA,LOW);
delay(1000);
digitalWrite(LED1, HIGH);
myStepper.step(stepsPerRevolution);
delay(1000);
digitalWrite(LED1,LOW);
if (i>=shots){
Serial.println("Koniec!");
}
}
}
Po wykonaniu zadanej ilości kroków wraca do pętli głównej i czeka na wciśnięcie przycisku start :)
Jeśli macie jakieś pomysły co zmienić, jak usprawnić/poprawić .... piszcie :P

_________________
Pozdrawiam
RobUk
HyperBipe 900, AMBeR III "Experience", Spitfire MKIIb, Sbach342, White Sheep 480 Quad, RoboFlat 270, AOKFly 230, Realacc 210
"Nie ważne jak zaczynasz, ważne jak ... kończysz ..." 3W Kasta


Ostatnio edytowano poniedziałek, 12 marca 2018, 15:33 przez RobUk, łącznie edytowano 1 raz

Góra
 Zobacz profil Wyślij e-mail  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 39 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron

77,143,330 Wyświetlone Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL