Super Moderator jawkers Napisano 21 Grudnia 2015 Super Moderator Share Napisano 21 Grudnia 2015 Jeden z Kolegów pytał mnie o zastosowane diody, poniżej zestawienie: Czerwona, pozycyjne skrzydło http://www.tme.eu/pl/details/asmt-rr45-aq902/diody-led-smd-kolorowe/avago/ Zielona, pozycyjne skrzydło http://www.tme.eu/pl/details/ll-s190pgc-g51b/diody-led-smd-kolorowe/lucky-light/ Biała, stroboskopy tył i skrzydła http://www.tme.eu/pl/details/ll-s192w-w21c/diody-led-smd-biale/lucky-light/ll-s192w-w2-1c/ Beacon http://www.tme.eu/pl/details/l-2060src/diody-led-tht-18mm/kingbright-electronic/ Biała, reflektory lądowania w skrzydłach http://www.tme.eu/pl/details/osw5dk7331a/diody-led-tht-18mm/optosupply/ Moduł sterujący Arduino Nano (na Allegro za ok. 15zł) I jak się ten moduł "konfiguruje", czy programuje, żeby diody migały w odpowiedniej kolejności? Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
milczacy Napisano 21 Grudnia 2015 Autor Share Napisano 21 Grudnia 2015 Tu jest kod/program działający u mnie: /* Oświetlenie nawigacyjne Boening 747 * */ const int LEDOFF = 0; const int LEDON = 96; // 25% const int LEDBLINK = 244; // 100% const int LEDHALF = 120; // 50% class LED { private: byte _ledPin; int _ledState; int _ledLastState; long _currentMillis; long _previousMillis; public: byte _brightness; long _interval; long _time; LED ( byte pin); void setOn(); void setOff(); void setOnTime(); void setBrightness( byte brightness); }; LED::LED( byte ledpin) : _ledPin(ledpin) { _brightness = 0; _ledState = LOW; _ledLastState = LOW; _currentMillis = millis(); _previousMillis = _currentMillis; long _time; pinMode(_ledPin, OUTPUT); } void LED::setOn() { analogWrite (_ledPin, _brightness); } void LED::setOff() { digitalWrite (_ledPin, LOW); } void LED::setBrightness ( byte brightness) { _brightness = brightness; } void LED::setOnTime(){ _currentMillis = millis(); if( _currentMillis - _previousMillis > _interval) { _previousMillis = _currentMillis; if (_ledState == LOW) { _ledState = HIGH; _brightness = LEDBLINK; } else { _ledState = LOW; _brightness = LEDOFF; } _ledLastState = _ledState; } if (_ledLastState == _ledState) { if ( (_currentMillis - _time) < _previousMillis) { _brightness = LEDBLINK; } else { _brightness = LEDOFF; } setOn(); } } /* dla Arduino Nano */ int Led_1 = 3; //ogon, białe flash int Led_2 = 5; //strobo skrzydla, biały flash int Led_3 = 6; //beacon, czerwony flash int Led_4 = 9; //position-zielone,czerwone,białe int Led_5 = 10; int Led_6 = 13; int Led_7 = 2; //landing golen, białe stałe int Led_8 = 7; //landing skrzydla wew, białe stałe int Led_9 = 8; //landing skrzydla zew, białe stałe int sensorPin = A0; // select the input pin for the potentiometer int ledPin = 12; // oświetlenie wnętrza modelu, białe int sensorValue = 0; // variable to store the value coming from the sensor LED Led_tail(Led_1); LED Led_strobe(Led_2); LED Led_beacon(Led_3); // Ustawienia po uruchomieniu układu void setup() { // ustawiamy stan IO, internal pull pinMode(Led_1, OUTPUT); pinMode(Led_2, OUTPUT); pinMode(Led_3, OUTPUT); pinMode(Led_4, OUTPUT); pinMode(Led_7, OUTPUT); pinMode(Led_8, OUTPUT); pinMode(Led_9, OUTPUT); pinMode(ledPin, OUTPUT); // tu regulujesz czas błysków Led_tail._interval = 1700; Led_tail._time = 60; Led_strobe._interval = 1000; Led_strobe._time = 70; Led_beacon._interval = 2400; Led_beacon._time = 100; } /* Wszystkie światła wyłączone */ void LEDS_OFF() { analogWrite(Led_1, LEDOFF); analogWrite(Led_2, LEDOFF); analogWrite(Led_3, LEDOFF); analogWrite(Led_4, LEDOFF); analogWrite(Led_7, LEDOFF); analogWrite(Led_8, LEDOFF); analogWrite(Led_9, LEDOFF); analogWrite(ledPin, LEDOFF); } /* Tylko światła nawigacyjne i pozycyjne (obrysowe) */ void Mode1() { Led_tail.setOnTime(); Led_strobe.setOnTime(); Led_beacon.setOnTime(); analogWrite(Led_4, LEDBLINK); analogWrite(Led_7, LEDOFF); analogWrite(Led_8, LEDOFF); analogWrite(Led_9, LEDOFF); } /* Światła nawigacyjne, pozycyjne i lądowania*/ void Mode2a() { Led_tail.setOnTime(); Led_strobe.setOnTime(); Led_beacon.setOnTime(); analogWrite(Led_4, LEDBLINK); analogWrite(Led_7, LEDBLINK); analogWrite(Led_8, LEDOFF); analogWrite(Led_9, LEDOFF); } void Mode2b() { Led_tail.setOnTime(); Led_strobe.setOnTime(); Led_beacon.setOnTime(); analogWrite(Led_4, LEDBLINK); analogWrite(Led_7, LEDBLINK); analogWrite(Led_8, LEDBLINK); analogWrite(Led_9, LEDOFF); } void Mode2c() { Led_tail.setOnTime(); Led_strobe.setOnTime(); Led_beacon.setOnTime(); analogWrite(Led_4, LEDBLINK); analogWrite(Led_7, LEDBLINK); analogWrite(Led_8, LEDBLINK); analogWrite(Led_9, LEDBLINK); } /* Tylko światła pozycyjne - obrysowe */ void Mode3() { analogWrite(Led_1, LEDOFF); analogWrite(Led_2, LEDOFF); analogWrite(Led_3, LEDOFF); analogWrite(Led_4, LEDBLINK); analogWrite(Led_7, LEDOFF); analogWrite(Led_8, LEDOFF); analogWrite(Led_9, LEDOFF); } /* w tej pętli, program wykonuje się w nieskończoność */ void loop() { /* read the value from the sensor: potencjometr dzielę na 6 pozycji, dla 6 trybów pracy */ sensorValue = analogRead(sensorPin); if ( sensorValue < 170 ) { LEDS_OFF(); analogWrite(ledPin, LEDOFF); } if ((sensorValue > 170) and (sensorValue < 340)) { Mode3(); analogWrite(ledPin, LEDHALF); } if ((sensorValue > 340) and (sensorValue < 510)) { analogWrite(ledPin, LEDOFF); Mode1(); } if ((sensorValue > 510) and (sensorValue < 680)) { analogWrite(ledPin, LEDOFF); Mode2a(); } if ((sensorValue > 680) and (sensorValue < 850)) { analogWrite(ledPin, LEDOFF); Mode2b(); } if (sensorValue > 850) { Mode2c(); } } /* a tu jest koniec kodu v2.3.2 */ Opis obsługi modułu Arduino jest na dedykowanej stronie - https://www.arduino.cc Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Super Moderator jawkers Napisano 21 Grudnia 2015 Super Moderator Share Napisano 21 Grudnia 2015 I mam rozumieć, że podłączam moduł przez USB, wklejam kod do programu, program moduł "zaprogramowywuje" i wszystko gotowe? Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
milczacy Napisano 21 Grudnia 2015 Autor Share Napisano 21 Grudnia 2015 Tak jest. Czysta technika ;) Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Super Moderator jawkers Napisano 21 Grudnia 2015 Super Moderator Share Napisano 21 Grudnia 2015 Tak jest. Czysta technika ;) Myślałem, że to jest bardziej skomplikowane. W kolejce czeka Airbus A380, tak że może mu coś takiego zrobię. A czy mógłbyś podać link o jaki to dokładnie moduł chodzi. Żeby nie kupić innego. Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
milczacy Napisano 21 Grudnia 2015 Autor Share Napisano 21 Grudnia 2015 Wkleję link z Allegro oraz kod do sekwencji Airbusa bo różni się od Boeinga. Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Super Moderator jawkers Napisano 21 Grudnia 2015 Super Moderator Share Napisano 21 Grudnia 2015 Wkleję link z Allegro oraz kod do sekwencji Airbusa bo różni się od Boeinga. Ok, super, dzięki wielkie. Jak by co, to się do Ciebie zgłoszę Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
milczacy Napisano 21 Grudnia 2015 Autor Share Napisano 21 Grudnia 2015 Ja kupowałem u tego sprzedawcy. Wklejam link z wynikami wyszukiwania, gdybym wkleił link do konkretnej aukcji za kilka dni byłby nieaktywny. Kod do Airbusa umieszczę, gdy go końcowo obrobię, teraz jest jeszcze w fazie "beta" ;-) ( działa tak -> ) Jeśli przewidujesz różne tryby pracy daj proszę znać, przygotuję odpowiedni kod Cytuj Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.