Skocz do zawartości

morswin89

Użytkownicy
  • Zawartość

    26
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O morswin89

  • Ranga
    3/10

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Legnica
  1. Ta która domyślnie instalowana jest z kompilatorem.
  2. Witam Pytanie czy używając standardowej biblioteki od obsługi SD da się w miarę prosto zrobić je automatyczne inicjalizowanie karty SD po jej wyjęciu i ponownym włożeniu. Wykorzystując pin Card Detect z karty który podłączyłem do zewnętrznego przerwania i wywołując w nim ponownie SD.begin() powoduje niestety zawiesznie całego uC. void CardDetect() { Serial.println("card detect"); delay(1000); SD.begin(10); }
  3. Problemem okazała się ilość znaków. Max ilość znaków w nazwie plików to 8, po wywaleniu separatorów wszystko działa.
  4. Witam Mam problem aby w nazwie pliku na karcie SD wstawić aktualna datę odczytana z RTC. String nazwa_pliku = ""; nazwa_pliku = rtc.getDateStr(); nazwa_pliku += ".txt"; File dataFile = SD.open(nazwa_pliku, FILE_WRITE); Przy takim zapisie nie tworzy mi żadnego pliku.
  5. Nie uruchamiam zaraz rainbow() w loop(). A problem rozwiązany zmiana sposoby wyzwalania przerwania z poziomu niskiego na zbocze opadające rozwiązało wszystko.
  6. Albo ja coś źle rozumuje albo... jak program wejdzie do pętli to nie ma prawa wykonać nić innego poza komendami zawartymi w pętli (pomijam przerwania) więc polecenie logika==1 zaraz za pętlą nie ma prawa się wykonać. Ale dla pewności wywaliłem tą linijkę i przyniosło to żadnych rezultatów.
  7. wklejam cały kod jedynie bez wszystkich funkcji wywoływanych z switcha jest to przykłady kod do obsługi WS2812B różnica polega ba tym że chcę aby tryb rainbow wykonywał się cały czas w kółko aż do wciśnięcia przycisku i przejściu do kolejnego trybu. ewidentnie chyba coś źle robię tylko co? #include <Adafruit_NeoPixel.h> #define BUTTON_PIN 2 #define PIXEL_COUNT 8 #define LED 13 Adafruit_NeoPixel strip_1 = Adafruit_NeoPixel(PIXEL_COUNT, 5, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel strip_2 = Adafruit_NeoPixel(PIXEL_COUNT, 6, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel strip_3 = Adafruit_NeoPixel(PIXEL_COUNT, 7, NEO_GRB + NEO_KHZ800); bool oldState = HIGH; int showType = 0; volatile byte logika = 1; void setup() { pinMode(BUTTON_PIN, INPUT_PULLUP); pinMode(LED, OUTPUT); digitalWrite(LED, LOW); strip_1.begin(); strip_1.show(); strip_2.begin(); strip_2.show(); strip_3.begin(); strip_3.show(); attachInterrupt(digitalPinToInterrupt(2), przycisk, LOW); } void loop() { bool newState = digitalRead(BUTTON_PIN); if (newState == LOW && oldState == HIGH) { // Short delay to debounce button. delay(20); newState = digitalRead(BUTTON_PIN); if (newState == LOW) { showType++; if (showType > 9) showType = 0; startShow(showType); } } oldState = newState; } void startShow(int i) { switch (i) { case 0: colorWipe(strip_1.Color(0, 0, 0), 0); // Black/off colorWipe(strip_2.Color(0, 0, 0), 0); colorWipe(strip_3.Color(0, 0, 0), 0); break; case 1: colorWipe(strip_1.Color(255, 0, 0), 20); // Red colorWipe(strip_2.Color(255, 0, 0), 20); colorWipe(strip_3.Color(255, 0, 0), 20); break; case 2: colorWipe(strip_1.Color(0, 255, 0), 20); // Green colorWipe(strip_2.Color(0, 255, 0), 20); colorWipe(strip_3.Color(0, 255, 0), 20); break; case 3: colorWipe(strip_1.Color(0, 0, 255), 20); // Blue colorWipe(strip_2.Color(0, 0, 255), 20); colorWipe(strip_3.Color(0, 0, 255), 20); break; case 4: theaterChase(strip_1.Color(255, 255, 255), 20); // White theaterChase(strip_2.Color(255, 255, 255), 20); theaterChase(strip_3.Color(255, 255, 255), 20); break; case 5: theaterChase(strip_1.Color(255, 0, 0), 20); // Red theaterChase(strip_2.Color(255, 0, 0), 20); theaterChase(strip_3.Color(255, 0, 0), 20); break; case 6: theaterChase(strip_1.Color( 0, 0, 255), 20); // Blue theaterChase(strip_2.Color( 0, 0, 255), 20); theaterChase(strip_3.Color( 0, 0, 255), 20); break; case 7: logika = 1; rainbow(50); break; case 8: rainbowCycle(20); break; case 9: theaterChaseRainbow(50); break; } } void rainbow(uint8_t wait) { uint16_t i, j; //for(j=0; j<256; j++) { do { digitalWrite(LED, LOW); j++; if (j > 256){ j == 0; } for (i = 0; i < strip_1.numPixels(); i++) { strip_1.setPixelColor(i, Wheel((i + j) & 255)); strip_2.setPixelColor(i, Wheel((i + j) & 255)); strip_3.setPixelColor(i, Wheel((i + j) & 255)); } strip_1.show(); strip_2.show(); strip_3.show(); delay(wait); } while (logika == 1); logika = 1; } void przycisk() { logika = 0; digitalWrite(LED, HIGH); } zmieniłem na 0 ale efekt jest dokładnie bez zmian, tak jakby wartość zmiennej logika nie była brana pod uwagę po jej zmianie w przerwaniu
  8. Witam Mam problem z przerwaniem działania pętli po naciśnięciu przycisku w przerwaniu zewnętrznym (przycisk zwiera do masy) pętla: void rainbow(uint8_t wait) { uint16_t i, j; do { digitalWrite(LED, LOW); j++; if (j > 256){ j == 0; } for (i = 0; i < strip_1.numPixels(); i++) { strip_1.setPixelColor(i, Wheel((i + j) & 255)); strip_2.setPixelColor(i, Wheel((i + j) & 255)); strip_3.setPixelColor(i, Wheel((i + j) & 255)); } strip_1.show(); strip_2.show(); strip_3.show(); delay(wait); } while (logika == 1); logika = 0; } przerwanie: void przycisk() { logika = 1; digitalWrite(LED, HIGH); } ustawienia: volatile byte logika = 0; attachInterrupt(digitalPinToInterrupt(2), przycisk, LOW); pinMode(BUTTON_PIN, INPUT_PULLUP); w przerwaniu zapalam diodę a w pętli gaszę więc moim zdaniem samo przerwanie jest obsługiwane poprawnie.
  9. Nie testowałem ich bez filtra ale podejrzewam że działałby tylko wynik mógłby być niestabilny. Co do radiator to kupiłem go na allegro w cenie jak dobrze pamiętam około 17 zł.
  10. Chciałbym zgłosić swój projekt Podwójnego mostka H na IR2184 i IRF1405 z pomiarem prądu Link do tematu: https://www.forbot.pl/forum/topics61/podwojny-mostek-h-na-ir2184-i-irf1405-z-pomiarem-pradu-vt11481.htm Chciałbym przedstawić układ podwójnego mostka H na IR2184 i tranzystorach z kanałem N IRF1405 wraz z wbudowanymi układami ACS758 pozwalającymi na pomiar prądu w każdym z mostków. Mostki mają służyć do sterowania szczotkowymi silnikami DC o mocy około 800W (zakładany prąd pracy w szczycie około 25A). Płytkę starałem się zaprojektować aby wytrzymała takie prądy (większość ścieżek prądowych prowadzona dwustronnie i łączona przelotkami), grubość miedzi to 75um.
  11. Witam Chciałbym przedstawić układ podwójnego mostka H na driverach IR2184 i tranzystorach mosfet z kanałem N IRF1405 (wybór padł na te tranzystory z powodu ich dostatecznie dużego prądu prący jak i bardzo małej rezystancji w stanie przewodzenie 5,3 mili ohma co przy zakładanym prądzie pracy daje około 3,3W mocy strat). Dodatkowo zastosowane zostały układy ACS758 pozwalającymi na pomiar prądu w każdym z mostków (do pomiaru prądu wykorzystują one efekt Halla co pozwala osiągnąć bardzo małą rezystancję wewnętrzna i przy maksymalnym dopuszczalnym padzie 100A daje straty mocy na poziomie 1W). Mostki mają służyć do sterowania szczotkowymi silnikami DC o mocy około 800W (zakładany prąd pracy w szczycie około 25A). Płytkę starałem się zaprojektować aby wytrzymała takie prądy (większość ścieżek prądowych prowadzona dwustronnie i łączona przelotkami), grubość miedzi to 75um. Zastosowane niskoimpedancyjne kondensatory filtrujące zasilanie w celu zapewnienie jak najlepszych warunków pracy. Mostek będzie sterowny w trybie czterokwadrantowym z przemiennym sterowaniem wszystkich tranzystorów, sterowanie takie zapewnia z automaty dynamiczne hamowanie podczas zwalniania lub zmiany kierunku oraz upraszcza sterowanie mostkiem gdyż potrzebne są dwa sygnały PWM o przeciwnych fazach. Obrazowo takie sterowanie wygląda następująco: przy założeniu 10 bitowej rozdzielczości sterowania, podanie wartości środkowej 512 powoduje że silnik będzie stał w miejscu i starał się utrzymać pozycję, przy zwiększaniu wartości silnik zaczyna się obracać w jednym z kierunków a przy zmniejszaniu poniżej 512 będzie obracać się w przeciwnym. schematy.zip
  12. Witam Jestem obecnie na 2 semestrze kierunku elektrotechnika, mogę powiedzieć, że możesz spodziewać się praktycznie wszystkiego. Na pierwszym semestrze wyzwaniem jedynie jest wyżej wspomniana analiza matematyczna która później staje się całkiem znośna w porównaniu z innym przedmiotami. Programowanie jest (u mnie w C), później będzie elektronika i programowanie procków i wiele innych...
  13. A więc tak początkujacy jestem w dziedzinie programowania, natomiast z elektronika ogolnie nie jest tak źle i z SMD również jestem obeznany więc wszelkie naprawy to nie problem. Patrząc na Kamami to ceny nie wiem skąd biorą i a porownująć zl3avr druga aukcją dość ubogo wypada za ta cenę.
  14. Witam Mam do sprzedania dwa przerobione praktycznie nowe serwomechanizmy SG-5010. Jest to pozostałość po nie zrealizowanym projekcie, zostały przerobione sprawdzone i na tym koniec. Cena myślę, że 20zł za sztukę. Kontakt gg2286582.
  15. Witam Który moduł z tych dwóch będzie lepszy (pomijam pojemność uC bo zawsze można wymienić) lub macie może jakieś inne lepsze propozycje? http://www.allegro.pl/item824250340_prog_plytka_evb_4_3_atmega32_usb_bascom_lcd.html http://www.allegro.pl/item822384997_modul_uruchomieniowy_atmega_16_usb_lcd_led_isp.html
×
×
  • Utwórz nowe...