Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'ATMega'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino, ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - roboty
    • Projekty - DIY
    • Projekty - DIY (początkujący)
    • Projekty - w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie
    • Kosz

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Znaleziono 5 wyników

  1. Cześć Mam problemy z Arduino i z programatorem. 1 . Kupiłem Arduino z chin podziałało chwile i kaput , no trudno pomyślałem że kupie nówkę sztukę orginalną , no ale też nie działa więc ... „I CAŁY MISTERNY PLAN W PIZDU” Arduino:1.8.9 (Windows 8.1), Płytka:"Arduino/Genuino Uno" Opcje projektu zmienione, przeładuj całość Szkic używa 444 bajtów (1%) pamięci programu. Maksimum to 32256 bajtów. Zmienne globalne używają 9 bajtów (0%) pamięci dynamicznej, pozostawiając 2039 bajtów dla zmiennych lokalnych. Maksimum to 2048 bajtów. avrdude: ser_open(): can't open device "\\.\COM3": Nie mo�na odnale�� okre�lonego pliku. Problem z wgrywaniem na płytkę. Sprawdź http://www.arduino.cc/en/Guide/Troubleshooting#upload w poszukiwaniu sugestii. Ten raport powinien zawierać więcej informacji jeśli w File -> Preferencje zostanie włączona opcja "Pokaż szczegółowe informacje podczas kompilacji" 2. Z programatorem to jest taka sprawa że w szkole na warsztatach sprawdziliśmy i działa atmega z płytki z chin ale sama płytka nie działa ( nie ważne ) , kupiłem programator ISP i nwm jak to podłączyć , żeby działało hehe ( oraz dalsze kroki postępowania ). PS . nie jestem jakimś mistrzem ale z schematów to umiem czytać , gorzej z programowaniem ... Z ewent. błędy ort. to sorry ...
  2. msalamon

    Zegar VFD na ATMega644P

    Długo zastanawiałem się czy pokazać ten projekt lecz postanowiłem, że jednak napiszę. Moim projektem jest zegar oparty o lampę VFD IW-18. Projekt wykonałem około 5 lat temu kiedy myślałem, że ATMega644P jest niesamowitym potworem. Zegar stał tylko około rok na biurku i od tamtego czasu leży w szafie. Jest to jeden z moich pierwszych w życiu “większych” projektów. Stare polskie przysłowie mówi “Każdy elektronik zrobi kiedyś zegarek” więc zrobiłem i ja. Projektu tego nigdy nie opublikowałem - po pierwszej publikacji wzmacniacza akustycznego na Elektrodzie zostałem tak zjechany, że przestałem się chwalić swoimi postępami publicznie. Teraz jestem starszy, mądrzejszy i na luzie podchodzę do krytyki w Internecie Projekt nie jest mistrzostwem estetyki ani też nie jest pozbawiony błędów. Hardware - komponenty Niestety nie ostał mi się żaden schemat czy zarys projektu, ale na szczęście elementy mają opisy. Oczywiście najważniejszą rzeczą, która mnie przekonała do budowy zegara jest próżniowa lampa fluorescencyjna IW-18. Kiedy ją zobaczyłem pierwszy raz od razu się w niej zakochałem i jak najszybciej kupiłem dwie sztuki u jakiegoś wrocławskiego elektronika. Lampa potrzebuje napięcia minimum 15 V. Przetwornica odpowiedzialna za napięcie podane na lampę to MC34063. Ustawiłem ją na około 30 V. Sercem układu jest wspomniana we wstępie ATMega644P w obudowie DIP. Po kilku latach obcowania z STM32 stwierdzam, że to jest naprawdę wielki kloc. Lampa IW-18 podobnie jak wyświetlacze 7-segmentowe wymaga multipleksowania. Jako, że MCU ma wiele pinów to zrobiłem to w całości na nim. Prądy płynące przez siatkę i segmenty lampy są zbyt duże, aby mogła to obsłużyć “goła” Mega, dlatego zastosowałem układy ULN2803A na portach sterujących wyświetlaniem. No dobra, ale zegar potrzebuje wyświetlać godzinę. Wykorzystałem zewnętrzny zegar RTC PCF8583P. Nie wiem czemu, ale nie wlutowałem gniazda na baterię o.O Oprócz prezentowania daty i godziny warto pokusić się o pomiar kilku parametrów środowiskowych. Postawiłem na temperaturę, wilgotność oraz ciśnienie. Za temperaturę odpowiada szalenie popularny DS18B20. Jako czujnik wilgotności dałem DHT11, a za pomiar ciśnienia odpowiada MPL115A1, który w tamtym czasie był dla mnie nieodpowiedni. Hardware - PCB PCB wykonałem ręcznie przy pomocy termotransferu żelazkowego. Jeszcze nie wiedziałem o patencie z laminarką. Niestety nie doszedłem do takiej wprawy, aby wykonać wszystkie ścieżki bez żadnej wady dlatego wiele z nich poprawione jest drucikiem. Był to też czas w którym zainteresowałem się komponentami SMD(stąd wspomniany wcześniej MPL115A1). Na PCB kilka elementów pasywnych jest w obudowie 1206. Był to też czas eksperymentów z DIY soldermaską wykonywaną farbami do ceramiki. Do dzisiaj mam jeszcze te same buteleczki z różnymi kolorami. Montaż lampy VFD nie jest mojego pomysłu. Kiedyś podpatrzyłem na inne wykonanie i bardzo mi się spodobało. Lampa wlutowana jest w osobną płytkę, a wszystkie piny wyprowadziłem na kątowe złącze goldpin. Obudowa Obudowy nie zrobiłem i było to świadome zagranie. Chciałem, aby cały zegar wyglądał trochę cyberpunkowo(wtedy nie znałem tego określenia). Ma to swój urok, ale niesamowicie przyciąga kurz. Wkręciłem jedynie kołki dystansowe jako nóżki. Software Program na szczęście się uchował i nawet wrzuciłem go jakiś czas temu na GitHub: https://github.com/lamik/IW-18_retro-style_clock Patrząc na niego dzisiaj, to nie jest aż tak źle Najbardziej razi mnie mieszanie języków polskiego i angielskiego. Całość działa w oparciu o timery programowe i jest napisana całkiem nieźle jak tak dzisiaj na to patrzę. Datę i godzinę ustawia się dwoma przyciskami. Pierwszy jest od wyboru menu. Z każdym jego naciśnięciem zegar przechodzi o ustawiania kolejnej zmiennej, która ta w momencie ustawiania szybko miga. Drugi przycisk inkrementuje wybraną daną. Z menu zegar wychodzi sam po upływie kilku sekund. Wcześniej wspomniałem, że MPL115A1 był dla mnie nieodpowiedni. Niestety nie byłem w stanie poznać go od strony programowej. A to wszystko dlatego, że nie potrafiłem go przylutować zwykłą lutownicą Nigdy później do niego nie wróciłem bo na rynku pojawiły się czujniki BMP od Boscha. Błędy Z perspektywy czasu oraz doświadczenia widzę wiele błędów. Niektóre z nich: RTC był szalenie niedokładny. Pamiętam, że wsadziłem zegar do szafy bo potrafił opóźniać się o kilka minut na dzień! Beznadziejna przetwornica wysokiego napięcia. Do MC34063 podchodziłem kilka razy i nigdy nie mogłem się z nią dogadać. To na razie chyba jedyna przetwornica która mnie pokonała. Skoro już o przetwornicy mowa to ustawiłem zdecydowanie na małe napięcie. Zegar jest bardzo słabo widoczny w oświetlonym pomieszczeniu. Grzanie się sekcji zasilania. Liniowy stabilizator 5V plus MOSFET od przetwornicy na jednym radiatorze to solidny grzejnik. Dzisiaj staram się unikać stabilizatorów liniowych. Grzanie się rezystorów na segmentach lampy. Źle je chyba dobrałem Za cienkie ścieżki do termotransferu. Nie wiem czemu, ale zawsze chciałem zrobić PCB podobną do tych profesjonalnych, czyli cienkie i ładne ścieżki. Nigdy to nie wychodziło, a dzisiaj produkcja nawet w Polsce jest tak tania, że szkoda sobie zawracać głowę trawieniem. Soldermaska własnego wykonania nie jest warta zachodu. Nie jest ona tak wytrzymała jak profesjonalne maski. Łatwo się zdziera. Kątowe piny nie łączą się pod kątek prostym. Lampa pod swoim ciężarem opada i jest nierówno Może sam wyłapiesz jeszcze jakieś istotne błędy Podsumowując - projekt mimo, że robiony był przez młodego i mało doświadczonego zapaleńca elektroniki to nauczył mnie wiele. Prawdą jest to, że każdy projekt uczy nas, a przy początkach uczy najwięcej. Dzisiaj szkoda mi jest niszczyć tą konstrukcję i mimo, że nie będę jej używał, to trzymam w szafie. Na szczęście mam jeszcze jedną lampę IW-18. Kiedyś pewnie powstanie coś na miarę moich dzisiejszych możliwości
  3. Wstęp: Na wstępie chciałbym zaznaczyć, iż jest to mój pierwszy projekt, w którym miałem możliwość wykorzystać software do projektu własnej płytki PCB i skonstruować coś co nie bazuje na płytce Arduino i nie jest plątaniną przewodów na płytce stykowej. Proszę o wyrozumiałość, a zarazem o konstruktywną krytykę i cenne wskazówki, które mogą być przydatne przy tworzeniu kolejnych projektów. Wykonany prze ze mnie projekt nie jest innowacyjny, ale dzięki niemu mogłem spróbować swoich przede wszystkim w wytrawieniu pierwszej płytki PCB. Opis: Wynikiem końcowym projektu jest niewielkie pudełko/sejf do przechowywania drobnych rzeczy, które można otworzyć po wpisaniu hasła, bądź przyłożeniu karty. Sercem układu jest mikrokontroler, który można spotkać w Arduino UNO R3. Ze względu na prostotę środowiska ArduinoIDE zdecydowałem się na implementację kodu właśnie w tym programie. W związku z tym wybór padł na mikrokontroler ATmega328P z wgranym bootloaderem dla Adruino. Takie rozwiązanie pozwoliło mi na wykorzystanie gotowych bibliotek do obsługi modułu RFID i klawiatury numerycznej. Zdecydowałem się na brak wewnętrznego źródła zasilania. Został wyprowadzony przewód USB, dzięki któremu urządzenie można podpiąć pod dowolne wyjście USB (powerbank, port USB w komputerze, ładowarka sieciowa). Urządzenie jest więc zasilane napięciem 5V DC. Wykorzystane elementy: Na projekt składają się wymienione wcześniej elementy, tj.: ATmega328P moduł RFID klawiatura numeryczna 4x3 konwerter poziomów logicznych oraz: stabilizator napięcia LF33CV rezonator kwarcowy 16MHz serwomechanizm rezystory 22Ohm oraz 10kOhm kondensatory 100nF diody LED (czerwona i zielona) + oprawki przewód USB + odgiętka na przewód przewody połączeniowe drewniane pudełko (brak linku, elementy znaleziony w piwnicy w trakcie porządków) dystans nylonowy Budowa: Po przetestowaniu działania urządzenia na płytce prototypowej znalazłem odpowiednie pudełko, w którym zmieści się układ i będzie stosunkowo estetycznie wszystko rozmieszczone. Wyciąłem miejsce na klawiaturę, miejsce na blokadę serwomechanizmu oraz wywierciłem otwory na oprawki na diody. W kolejnym kroku pokryłem pudełko matową farbą i wnętrze wypełniłem materiałem zbliżonym do okleiny na głośnikach i tubach basowych. Po wykonaniu płytki przystąpiłem do lutowania elementów. Klawiatura, moduł RFID, diody, serwomechanizm oraz złącze zasilania zostały połączone z płytką poprzez przewody połączeniowe z końcówką żeńską. Płytka PCB została umieszczona w górnej części pudełka na nylonowych dystansach. Pod płytką znalazło się miejsce na moduł RFID oraz klawiaturę i diody. Na koniec wyciąłem odpowiedni fragment deseczki balsowej z miejscem na serwomechanizm, aby ukryć przewody połączeniowe. Deseczkę balsową okleiłem tym samym materiałem co wnętrze pudełka. Oprogramowanie: Kod programu został napisany w środowisku ArduinoIDE z wykorzystaniem następujących bibliotek: Servo.h Keypad.h Password.h SPI.h MFRC522.h Kod programu: #include <Servo.h> #include <Keypad.h> #include <Password.h> #include <SPI.h> #include <MFRC522.h> //Servo Servo servo; //Password Password password = Password("1234"); //RFID const byte UID1[] = {0x70, 0xC3, 0xF9, 0x65}; const byte UID2[] = {0x35, 0xDC, 0xD7, 0x65}; const byte ROWS = 4; const byte COLS = 3; char keys[ROWS][COLS] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'#', '0', '*'} }; byte rowPins[ROWS] = {4, 3, 2, 0}; byte colPins[COLS] = {8, 7, 6}; Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); MFRC522 rfid(10, 5); MFRC522::MIFARE_Key key; void setup() { Serial.begin(9600); SPI.begin(); rfid.PCD_Init(); pinMode(A0,OUTPUT); pinMode(A1,OUTPUT); servo.attach(9); servo.write(0); keypad.addEventListener(keypadEvent); digitalWrite(A0,HIGH); digitalWrite(A1,LOW); } void loop() { keypad.getKey(); if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) { if (rfid.uid.uidByte[0] == UID1[0] && rfid.uid.uidByte[1] == UID1[1] && rfid.uid.uidByte[2] == UID1[2] && rfid.uid.uidByte[3] == UID1[3]) { servo.write(90); digitalWrite(A0, LOW); digitalWrite(A1, HIGH); } else if (rfid.uid.uidByte[0] == UID2[0] && rfid.uid.uidByte[1] == UID2[1] && rfid.uid.uidByte[2] == UID2[2] && rfid.uid.uidByte[3] == UID2[3]) { servo.write(90); digitalWrite(A0, LOW); digitalWrite(A1, HIGH); } } } void keypadEvent(KeypadEvent eKey) { switch (keypad.getState()) { case PRESSED: Serial.println(eKey); switch (eKey) { case '#': checkPassword(); delay(1); break; case '*': closeBox(); delay(1); break; default: password.append(eKey); delay(1); } } } void checkPassword() { if (password.evaluate()) { servo.write(90); digitalWrite(A0, LOW); digitalWrite(A1, HIGH); } else { servo.write(0); digitalWrite(A0, HIGH); digitalWrite(A1, LOW); } } void closeBox() { password.reset(); servo.write(0); digitalWrite(A0, HIGH); digitalWrite(A1, LOW); } Działanie programu: Aby odblokować serwomechanizm i otworzyć pudełko należy wpisać odpowiedni kod zdefiniowany w programie i zatwierdzić znakiem "*" lub przyłożyć odpowiednią kartę (zdefiniowane są dwie karty). Po odblokowaniu gaśnie dioda czerwona, zapala się dioda czerwona i serwomechanizm zmienia położenie. Aby zamknąć pudełko należy wcisnąć przycisk "#". Podsumowanie: Projekt uważam za prawie zakończony. Po złożeniu całego urządzenia zwróciłem uwagę na brak możliwości zmiany kodu oraz dodania nowej karty (możliwe jedynie poprzez przeprogramowanie ATmegi). Projekt płytki zapewne pozostawia sporo do życzenia, dlatego liczę na cenne wskazówki aby nie popełniać błędów w przyszłości. Za wadę uważam też brak dodatkowej filtracji zasilania (stwierdziłem, że skoro biorę zasilanie z USB to nie trzeba nic dodawać). Zaletą (albo i wadą ) urządzenia są małe gabaryty. Ja wykorzystuje je do przechowywania zdjęć wykonanych Instaxem. Załączniki: W projekcie załączam kod programu, wykorzystane biblioteki i projekt Eagle do płytki PCB. Zdjęcia: safe_box_eagle.zip safe_box_software.zip
  4. Niskobudżetowy zegar Nixie Każdy elektronik chyba kiedyś widział urządzenie oparte o lampy Nixie. Z racji ich uroku, niepowtarzalnego wyglądu i chęci zrobienia czegoś "wow", i ja taki zbudowałem. Działanie lamp Nixie: Dla tych, którzy nie wiedzą co lampy Nixie, już służę pomocą: lampy Nixie zostały wynalezione w latach 60. ubiegłego wieku. Pierwsza firma która je produkowała tak je nazwała i się ta nazwa przyjęła. Były też to pierwsze wyświetlacze cyfrowe. Ich działanie polega na jonizowaniu się gazu (neonu z domieszkami) wokół katody z przyłożonym napięciem ok. 180V. Zjonizowany gaz powoduje świecenie się, i układa się wokół katody (w tym przypadku cyfry). Na żywo wygląda to bezcennie, lecz należy pamiętać że to wysokie napięcie. Budowa: Ale może najpierw coś o mnie: nazywam się Leon, mam 14 lat, chodzę do 8 klasy podstawówki i interesuję się elektroniką, informatyką, itp. Mam też drukarkę 3D - nie wykorzystałem jej w konstrukcji z racji jej awarii (czekam jeszcze na nowego rampsa ). Przechodząc już do zegara: z racji mojego stosunkowo młodego wieku, nie mam zbyt dużo pieniędzy na projekty więc chciałem na całość przeznaczyć ok. 100 zł zebranych od dziadków. Dlatego miało wyjść tanio i dobrze. Założenia z góry były jasne: multiplexowanie 1 sterownikiem, użycie 4 lamp, oraz materiałów z odzysku. Zacząłem od zrobienia przetwornicy step-up na 200V prądu stałego. Skorzystałem z tego schematu, który się sprawdził dość dobrze. Potem przyszedł mi sterownik 74141, oraz neonówka - mogłem już sprawdzić czy wszystko działa, i działało za pierwszym razem (możecie zacząć budować bunkier na apokalipsę). Następnie przeszedłem do zrobienia płytki głównej - goła atmega 328 z kwarcem 16mhz, ze sterownikiem na jednej płytce. Od razu zamontowałem moduł czasu RTC DS1302 (najtańszy) który lekko zmodyfikowałem - piny dałem z drugiej strony, a na górze zamontowałem koszyczek na dużą baterię od biosa. Do tego doszedł stabilizator 7805 i sterownik katod lamp. Całość wyszła całkiem schludnie - jestem z tego zadowolony. Na końcu doszły mi tranzystory do sterowania anodami lamp. Zastosowałem tu klucz z NPN MPSA42 oraz PNP MPSA92. I tutaj, podczas testów zrobiłem błąd - z racji małego protoboarda zrobiło się zwarcie, przez które zjarałem mój pierwszy rezystor w życiu (!), a tranzystory jakoś działały dalej. Po naprawieniu usterki 1 lampa działała - mogłem wyświetlić wszystkie cyfry od 0 do 9. Mogłem też zmierzyć, że napięcie zapłonu wynosi 180V i obniża się do 140V napięcia pracy. Teraz zostało mi zrobić podstawki - model pod lampy IN-12 do druku mogę udostępnić, ale z racji uszkodzenia płyty musiałem je zrobić sam. Wziąłem więc starą pokrywkę od farby, wyciąłem prostokąty, markerem zaznaczyłem miejsca na piny wdg. datasheetu, mini wiertarką wywierciłem otwory. Musiałem przygotować też same piny do podstawek - użyłem tu rozwierconych pinów z podstawek precyzyjnych, a następnie młotkiem wbiłem we wcześniej przygotowaną podstawę. Elektronika była gotowa, więc zacząłem programować. Po chwili dodałem mikrofon elektretowy, aby po klaśnięciu zegar się sam wyłączył, i od razu przeświecił wszystkie cyfry w celu uniknięcia efektu zatrucia katod. Zauważyłem też, że cewka w przetwornicy się dość mocno grzeje - dałem więc kapkę pasty termoprzewodzącej z domieszkami złota i przykleiłem radiator. Została mi już najgorsza część - obudowa. Normalnie bym takową wydrukował, ale że nie mogłem, wyciąłem ze sklejki listewki które pomalowałem szprejem na czarny mat. Wywierciłem otwory, poskręcałem śrubami M2,5. Wyszło źle, krzywo, niedokładnie - po prostu do d.... , pewnie dlatego że to była moja pierwsza obudowa ze sklejki, i z pewnością wydrukuję później obudowę (post zaktualizuję). Z daleka, jak patrzymy na zegar, wygląda on ciekawie - czarna bryła, lampy rosyjskiej produkcji i to klaśnięcie - wszystko to sprawia, że zegar dodaje niepowtarzalny klimat do pokoju. Zegar robiłem cały tydzień szkolny. Działanie zegara: Zegar wyposażyłem w klawiaturę 3 przycisków - "+", "-", oraz "prog". Przytrzymując przycisk prog możemy nastawić zegar, klikając odpowiednio + i -, oraz kliknąć prog ponownie by nastawić kolejną cyfrę. Podczas zwykłego działania, kliknięcie + spowoduje wyświetlanie się minut oraz sekund, a - będzie wyświetlał godziny i minuty. Dodatkowo, jeżeli podczas uruchamiania zegara przytrzymamy przycisk +, zostanie wywołany efekt "slot machine". Całość programowałem w środowisku Arduino, za pomocą programatora USBASP. Lista zakupów: 4x lampy IN-12 - ok. 10zł/sztuka, 50zł całość (+przesyłka) konwerter step-up - jakieś 20zł za całość sterownik, neonówka i przesyłka - 20zł tranzystory z drobiazgami - 20zł ----------------------------------------------------------------------- Za całość zapłaciłem jakieś 110zł. Resztę elementów już miałem. Dość nieźle, kiedy najtańsze zegary były chyba za ok. 300zł. Cudem jest fakt, że przeżyłem - akurat teraz mnie nic nie kopnęło, ale wcześniej doświadczyłem mocy napięcia gniazdkowego (długa historia). Sam zegar przyniósł mi dużo pochwał, szacunek u kolegów, 6 z fizyki na semestr - to tak jak te cudowne aplikacje na androida Od siebie jeszcze powiem, że na pewno zegar rozbuduję i wzbogacę o nowe funkcje. Co dalej? Mam w planach kalkulator domowej roboty, z kolegą zbudowałem już działający prototyp urządzenia podlewającego rzeżuchę. Oczywiście zachęcam do budowy zegara, ale należy pamiętać o wysokim napięciu. Pozdrawiam, Leoneq :3
  5. Witam , wchodzie w temat uC i proszę o pomoc (ATmega8a) DDRB=0b00001111;// ustawienie pinów 0-3 portu B jako wyjście DDRB &= ~(1<<PB7); PORTB |= (1<<PB7); DDRD &= ~(1<<PD7); PORTD |= (1<<PD7); próbowałem też: DDRB=0b00001111;// ustawienie pinów 0-3 portu B jako wyjście //DDRB &= ~(1<<PB7); PORTB |= (1<<PB7); DDRD &= ~(1<<PD7); PORTD |= (1<<PD7); Dlaczego nóżka D7 ma wysokie napięcie (H) a nóżka B7 nie ?
×