Skocz do zawartości

slon

Użytkownicy
  • Zawartość

    71
  • Rejestracja

  • Ostatnio

Reputacja

42 Bardzo dobra

O slon

  • Ranga
    4/10

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

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

  1. Należy tylko pamiętać aby zadeklarować funkcję: void serialEvent(); i dodać ją do void loop() ale na tym etapie to większość osób powinna wiedzieć. Nie miałem jeszcze czasu na zapoznanie z QT w praktyce (bardzo podpasował mi Processing 3) ale artykuły prześledziłem. Ogólnie ujmując to wykonany kawał dobrej roboty.
  2. Dzięki za wydzielenie tematu. Ja ze swojej Strony będę mógł w tym temacie coś więcej napisać za kilka dni.
  3. Próbował może ktoś korzystać z STM32CubeIDE? Zgodnie z tym opisem to jest All-in-one. Czyli może w końcu wszystko działa tak jak powinno?
  4. Teraz wyślij wartość 0.01 i zobacz co jest zwracane. I następnie wyślij dowolną cyfrę od 0 do 9 ale w moniorze portu szeregowego ustaw Both NL & CR .Otrzymane wartości sprawdzaj w tabeli ASCII.
  5. Z tym kodem, który wkleiłeś i zakładając , że monitor portu szeregowego to ten z Arduino IDE to raczej poprawnie nie działało. Serial.println(czas2*1000); zwraca wartość -15536 delay(czas2*1000); //czyli będzie -15536 w monitorze portu szeregowego arduino IDE wysyłam oczywiście 2. Na początek to najlepiej sprawdzić samą zmienna czas2 czyli : Serial.println(czas2); W monitorze arduino IDE ustaw No line ending i wyślij 2. Zwracana jest wartość 50. Wyśłij kolejno cyfry od 0 do 9 a zobaczysz że jest tu jakaś prawidłowość. To teraz pora na tabelę ASCII
  6. Jak interesują cię różne podejścia to możesz zerknąć do tego opisu , który jest na forum od jakiegoś czasu. Moduły radiowe są dostępne w sklepach internetowych. Jeśli ktoś ma inne doświadczenia od moich z tymi modułami to niech napisze. Sam z chęcią poczytam.
  7. Cześć. W BluinoLoader jest opcja wgrywania przez BT zamiast USB. W wersji bezpłatnej nazwa i pin dla BT jest przypisana na sztywno ale i tak raczej szybciej będzie spróbować w ten sposób niż szukać rozwiązania po kablu.
  8. Sterowania przyciskami nie sprawdzałem. Natomiast sprawdziłem jak wygląda sterowanie jasnością z użyciem micros() na pinie 4. Dioda płynnie się rozjaśnia (kwestia doboru wartości).
  9. Podałem źródło do książki bo nie wiedziałem, że to jest na forum.
  10. ja tak tylko wtrącę jeśli ktoś był by ciekawy jak wygląda main() w arduino int main(void) { init(); initVariant(); #ifdefine(USBCON) USBDevice.attach(); #endif setup(); for(;;) { loop(); if (serialEventRun) serialEventRun(); } return 0; } Źródło: arduino a technical reference (strona 170). Całość zaczyna się od strony 168 i można sobie to podejrzeć w bezpłatnej próbce na google play.
  11. Nawet tak się składa , że w arduino mega na pinach , 15 i 14 jest HS Bluetooth.begin(9600); // hardware serial for Bluetooth więc aby ten komentarz był prawdziwy to raczej trzeba by to było zapisać Serail3.begin(9600);
  12. Ja ze swojej strony podsuną bym ci taką alternatywę: zamiast 3xAA 4xAAA (te 4 małe paluszki będą niewiele większe od jednego AA a więc zaoszczędzisz sporo miejsca) czyli >6V na starcie do tego ta przetwornica (step-up step-down ) dzięki, której na wyjściu otrzymasz 5V w zakresie od 2 do 16V a wiec i tak o wiele większy zakres niż potrzebujesz. Podpinasz pod +5V arduino i to tyle a co do logiki 3,3V to zawsze można użyć konwertera poziomów logicznych.
  13. Wracając do metronomu to zainteresowały mnie dwa założenia wpasowałem to do funkcji, którą zamieściłem na pierwszej stronie potencjometr=analogRead(A1); potencjometr=map(potencjometr,0,1023,30,250); BPM=60000/potencjometr/2; start(7,BPM,BPM); działa całkiem fajnie chociaż osobiście chyba bym wolał regulację BPM przyciskami "góra" , "dół".
  14. Moją intencją nie było rozpisywanie pliku BlinkingLed.cpp czy , którejkolwiek z tych metod. Natomiast sam plik nagłówkowy BlinkingLed.h to w zasadzie mógł by wyglądać tak: #ifndef BlinkingLed_h #define BlinkingLed_h #include "Arduino.h" class BlinkingLed { private: int _pin; int _onTime; int _offTime; int _autostart; public: BlinkingLed(int pin); BlinkingLed(int pin, int OnTime, int OffTime, int autostart = 0); void setOnTime(int); void setOffTime(int); int getOnTime(void); int getOffTime(void); void start(void); void stop(void); void run(void); }; #endif oczywiście , żeby to mogło działać to trzeba by było obydwa te pliki (BlinkingLed.cpp oraz BlinkingLed.h) przenieść do folderu BlinkingLed i umieścić w folderze arduino Libraries (zakładając , że będziemy korzystać z arduino IDE) . Jeśli ktoś jest dalej zainteresowany tym tematem to zostaje do uzupełnienia plik BlinkingLed.cpp i rozpisanie poszczególnych metod. #include "Arduino.h" #include "BlinkingLed.h" BlinkingLed::BlinkingLed(int p) { }
  15. Konstruktor przypisuje wartości początkowe do atrybutów BlinkingLed(int pin, int OnTime, int OffTime, int autostart = 0); czyli w tym wypadku do atrybutu _autostart domyślnie została by przypisana wartość zero. Tworząc nowy obiekt np: BlinkingLed led1(13,1000,1000); podaje wartości początkowe do pozostałych atrybutów. Metoda start(); sprawdza warunek np: start() { if (autostart==1) { // blink uruchomiony } else // czekamy } atrybut _autostart ma wartość 0 więc czekamy. Metoda run(); np: run() { autostar=1; } metoda stop(); stop() { autostart=0; } teraz gdybym chciał utworzyć kolejny obiekt BlinkingLed led2(3); tutaj zastosowałem pierwszy konstruktor BlinkingLed(int pin); czyli na tą chwilę miał bym dwie diody na na pinach 3 i 13 gotowe do uruchomienia np: led1.start(); led2.start(); led1.run(); led2.run(); czy to co napisałem jest poprawne zwłaszcza jeśli chodzi o zastosowanie konstruktora?
×
×
  • Utwórz nowe...