Skocz do zawartości

daniel89

Użytkownicy
  • Zawartość

    154
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    2

daniel89 wygrał w ostatnim dniu 21 czerwca 2019

daniel89 ma najbardziej lubianą zawartość!

Reputacja

21 Dobra

O daniel89

  • Ranga
    5/10

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Ostrowiec
  • Zawód
    technik

Ostatnio na profilu byli

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

  1. Może obsługa oscyloskopu nie jest idealna, ale czas miałem ograniczony na wykonanie tych pomiarów i tutaj aż tak dokładnych badań naukowych nie potrzeba by mieć wszystko idealnie pomierzone. Ja jakoś widzę stan załączania przy włożeniu wtyczki do gniazdka. Ta szpilka na linii prostej jest poświadczeniem że generuje się szpilka w momencie wkładania wtyczki do gniazdka i ona dalej przechodzi przez mikroprocesor i można to zauważyć . Każde zdjęcie opisałem czym jest. To są wychwycone stany nieustalone - przy włączeniu właśnie wtyczki do kontaktu 230V AC . Szpilka ta jest pomimo dawania kondensatorów przy stabilizatorze lm7805 - na schemacie widać że jest wykonany schemat według noty katalogowej lm-a , a kondensatory 100nF dawałem przy samych nóżkach procesora. Przy normalnej pracy wszystko działa poprawnie- nie ma żadnego problemu, nastawiam czas załączenia na uC na 20ms i widać to na zdjęciu że bez żadnej szpilki zwiera idealnie do masy - więc układ zasilania jest poprawny. Tylko podczas stanu nieustalonego przedostaje się impuls na załączenie diody w optotriaku - coś jak drgranie styków jak zczytujemy w uC switcha i bez opóźnienia 20ms to głupieje układ . Tutaj więcej zdjęć nie mam co robić bo na nich wszystko widać , nie widzicie tego , na prawdę ??? To takie "pełzanie" pokazuje jak przełącza mikroprocesor układ z podciągnięcia pull-down na pull-up, nie jest to skokowe i zajmuje jakiś czas - dokładnie około 20ms . Stan niski więc jakiś ułamek sekundy jeszcze trwa i ten ułamek sekundy też może - choć nie wiem do końca - powodować to wzbudzenie - początkowo myślałem że to wina programu, ale teraz wiem że dając odwrotne sterowanie czyli stanem wysokim mogło by tego nie być. Chyba że macie jakieś inne własne przemyślenie skąd ta szpilka i czy w tym "pełzaniu" układ może się wzbudzić ? Co do odczytów to już wyjaśniam - cała kratka w górę ma 10V - pokazuje 1V - pewnie wiecie dlaczego - sonda ma przełącznik x1 i x10 i tym się bawiłem . Jak widzicie przy przełączaniu zwiera do połowy kratki a tam jest 5V - możecie tak przyjąć . Czyli ok. 6 ms zajmuje przejście układu do 2,5V i jakieś 10ms przejście z 2,5V do 5V . ta taka szpilka to jest moment włączenie wtyczki do sieci - czyli moment startu . Na niektórych pomiarach widać że od momentu pojawienia się szpilki program jeszcze ok. 4ms jest w stanie 0V . Tak się dzieje jak już kondensatory się rozładują. Jak Marek zauważył trzeba jakiś czas odczekać aż kondesatory na zasilaniu "puszczą" i dlatego przy szybkim ponownym włączeniu wtyczki nie ma tego błysku żarówki . Po odczekaniu jest - wnioski nasuwają się same - program przy starcie uładu jeszcze 4ms wystawia logiczne 0 i powoli wzrasta do tego 2,5V - tutaj była używana szyba biblioteka Fast dla arduino. Jak kondensatory jeszcze trzymają to nie ma takiej akcji - czyli wina jest z jednej strony szpilka która może - chodź tego nie wiem generować samowzbudzenie optotriaka w sposób magiczny - jednak czas potrzebny by był taki błysk jest właśnie koło 6ms i ten czas to przejście układu od 0 do 2,5V . Moim zdaniem na to już nie ma lekarstwa . Jedyną opcją to sterowanie stanem wysokim - kondensatory nF raczej nie pomogą - chodź tutaj pewnie elektronicy by próbowali to wyeliminować dodatkowo filtrując ten układ. Układ jednak działa , a ten moment startu jakoś będzie trzeba przeżyć to tylko ok. 10ms błysku nawet połowy sinusoidy nie ma wygenerowanej mocy - trzeba po prostu nie złączać elektrod od transformatora w momecie włączania układu do sieci - chodź to też jeszcze na transformatorze można by pomierzyć czy wogóle przez taki okres było by to groźne . Na razie nie che mi się płytki przerabiać na odwrotne sterowanie więc zostanie co jest - w nowszej wersji najwyżej to podmienię. A i jeszce jedno jak Marku nie masz cierpliwości i zdrowia do ludzi co nie robią książkowo to może melisę na uspokojenie i nie masz co się tutaj tak unosić że prosiłeś o swoje pomiary, ja wstawiam to co jestem w stanie zrobić - tak obca mi instrukcja i czas na bawienie się tym oscyloskopem - do tak błachych pomiarów nie przyłożyłem się należycie - pewnie przez to egzaminu bym nie zaliczył u Pana prof. Marka
  2. Kod kolegi atmegatona dalej nie działa. Wyniki z oscyloskopu tylko mnie upewniły że sterując stanem wysokim uniknął bym tego typu problemu. Z zasilaniem faktycznie idzie delikatna szpilka przy starcie mimo kondensatora 100nF blisko zasilania Pierwsze zdjęcie od góry to właśnie na wyjściu przelaczanie na stan wysoki z low zajmuje jakieś 20ms i pełza to napięcie. Przy normalnej pracy zawiera do masy na 20ms i jest to okej. Potem kolejne próby pomiaru tego stanu na tym piwie i pomiaru zasilania ta ciągła linia widać tam szpilkę.
  3. Mi to się wydaje że to co ja piszę nie bardzo przez Marka jest rozumiane i zaczyna tutaj wypisywać jakieś książkowe wypowiedzi. Gdzie napisałem że na wyjściu z trafo jest 5V ? Na wyjściu ze stabilizatora jest ponad delikatnie 5V i to jest normalna praca , wszystko działa przecież pisałem. Trafo jest 230/6V-8V prądu zmiennego. Jedynym problemem jest ta szpilka napięcia i to właśnie zmierzę - Stan na wyjściach mikroprocesora. Rozwiązanie hardwarowe nie leży po stronie zasilania układu bo układ działą poprawnie . tutaj chodzi tylko i wyłącznie o to co podaje mikroprocesor na wyjściu . Mogę jeszcze zmierzyć jakie zasilanie dochodzi do mikroprocesora w momencie startu układu jeśli to co kolwiek pomoże ... Zobaczę też czy kondesnator pomoże i czy zamieniając na sterowanie stanem wysokim ten problem zniknie ... Oczywiście najpierw sprawdzę czy softowo się nie uda tego poprawić .
  4. Mostek oddaje delikatnie ponad 5V DC widać to na przebiegu w oscyloskopie , nie muszę miernika podpinać innego typu woltomierz. Pomiary były robione nie w celu ustalenia błędu te pomiary robiłem jeszcze zanim ten błąd nie był wykryty, pokazałem tylko że zasilanie jest w porządku w stanie ustalonym - wiec czemu masz teraz do mnie jakieś pretensje ? Wiem co muszę pomierzyć - wyjście z mikroprocesora OUT w stanie włączania układu - nieustalonym, oraz najlepije jeszcze na wyjściu z podciągnięcem do High Signal np. BUZZ. jeśli na wyściu BUZZ nie będzie przy stanie takiego piku to świadczy o tym że tranzystor NPN i odwrotne sterowanie załatwi sprawę bez kombinowania, tak to muszę kondensatorem kilka nF teraz wprowadzić inercję i patrzeć czy coś to zmienia - tyle hardwarowo mogę zrobić , inną kwestią jest by program sam z siebie nie siał przy przełączaniu - ale jak to zmierzę to dopiero uwierzysz ,że to wyjście mikroprocesora przełączane z LOW na HIGH tak sieje ?
  5. Na tych pomiarach widać jakość zasilania ale to już w stanie ustalonym jest . Pierwsze takie delikatnie pływające to zasilanie +5V ,a to idealne +5V to po dławiku na AVCC.
  6. Dzięki @atMegaTona za poprawienie, wieczorem to sprawdzę. Możliwe że koledzy nie bardzo wiedzieli dlatego nie chcieli poprawiać. Mi samemu Ciężko to zrozumieć. Nie o to Ci chodziło co tutaj znalazłem z tymi init ? : https://www.eit.lth.se/fileadmin/eit/courses/edi021/avr-libc-user-manual/mem_sections.html . Tylko tutaj by procesor zinterpretował co to jest POTD, DDRD, jest dołączona biblioteka właśnie ta do AVR : #include <avr/io.h> . Nie wiem czy ten \ nie ma znaczenia w tym Twoim zapisie i brak tej biblitoeki , bo wcześniej też normalnie kompilowalo tylko nie wykonywało podciągnięcia na tym pinie - PD7. @marek1707 , według schematu ja podłączam tylko te 3 piny do sterowania optotriakiem + zasilanie. X2-3 z X1-1 , X2-2 z X1-2 oraz X2-1 z X1-3 . Napięcie zasilania jest stabilne jak widzisz na schemacie jest filtrowane kondensatorami po stabilizatorze lm7805. Tak jak poprzednio , dopiero wieczorem mogę co kolwiek pomierzyć dalej. Układ zasilanie ma stabilne bo sprawdzałem jakość zasilania na oscyloskopie. W chwili załączenia nie sprawdzałem, ale skoro po czasie się to stabilizuje a procek wydobywa te przebiegi załączające optotriaka dlatego w programie szukałem tego problemu. Rezystory były - nie wiedziałem o jakie jeszcze rezysotry Ci chodziło - ten cudowny rezystor który miał poprawić jakość. Z tego co wiem to szpilki napięcia raczej filtruje się kondesnatorami nF , ale może się mylę. Dlatego pomierzę wszystko by było jasne ale jak mówię wieczorem. Jeszcze jedno po dodaniu tej biblioteki do szybszego przełączania Fast , jak by żarówka mniej błyskała, może to coś wam rozjaśni.
  7. Widać te szpilki? Przy włączeniu zasilania do sieci powstają. Dawałem rezystor i to nie pomagało chyba że źle podpisałem. podpisane na Atmedze jest jako OUT i steruje przez rezystory i tranzystor załączając optotriaka . Mierzyłem na złączu SIG to już jest po tranzystorach i rezystorach na wejście załączajace tyrysory przez optotriaka. Jak to niby teraz hardwerowo zrobić by ta dioda w optotriaku nie błyskała przy włączaniu zasilania do sieci ? Jakiś kondensator czy co ?
  8. Panowie z tym asemblerem to sobie daruję . Co do tego szybkiego digitalWriteFast -> faktycznie szybciej ustawia bo jak miga to nie tak cały czas szybko podczas włączania urządzenia jednak raz na jakiś czas widać na żarówce tą szpilkę . Instrukcje kolegi @atMegaTona , ustawiam i puszczam program i jeśli w setup() nie dam ustawień digitalWrite() oraz pinMode() to nie mam ustawionych tych pinów na wyjście więc albo ja coś źle robię albo metoda zawiodła. Co do ustawienia na początku digitalWrite a potem pinMode to jakoś nie widzę różnicy. Hardwarowo zbić szpilkę w jaki sposób ? podpinam przez rezystor i na nim taka szpilka nie zbija się różne wartości rezystorów dawałem ... Powiem że nie spodziewałem się z tym takich problemów i mam mieszane teraz uczucia co do tych procków AVR.
  9. Czyli tak ustawiam to przed void setup() ? void init_ustawpin() __attribute__ ((naked)) __attribute__ ((section (".init1"))); void init_ustawpin(){ DDRD |= _BV(PD7); PORTD|= _BV(PD7); } /////////////////////////////////////////////////////////////////////////////////////// void setup() {} Wiesz w Arduino zwykle miałem styczność tylko z tym co się wykonywało od void setup(), dlatego nie bardzo rozumiałem jak to ma działać . Teraz ta procedura init_ustawpin() zostanie wywołana i przejdzie do skecji .init1 ustawieć procesora i tam podpisze portd pin 7 na stan wysoki przed startem programu czyli wywoałniem setup() dla arduino ?? Teraz nie musze w setup() tego ustawiać i będzie działać ? , rozumiem że tego już nie muszę dodawać bo wcześniej to ustawiłem tym co podałeś ? void setup() { digitalWrite(7,HIGH); pinMode(7, OUTPUT); }
  10. Czyli nie bardzo rozumiem to jak działa procesor . To może pytanie do @atMegaTona , Jak mam uruchomić te porocedury w SETUP() ? Pin 7 arduino mam ustawić na wysoki ... Z tego co czytałem samo uruchomienie SETUP() to już uruchomienie instrukcji procesora , więc to nie zaburzy jakiegoś przypadkowego ustawienia tam stanu niskiego?... no nic później spróbuję to uruchomić , rozumiem że w SETUP() mam wywołać : init_ustawpin() ? Tylko jak ? Tak to trzeba ustawić ? : void init_ustawpin() __attribute__ ((naked)) __attribute__ ((section (".init1"))); //////////////////////////////// void init_ustawpin(){ DDRD |= _BV(7); PORTD|= _BV(7); } //////////////////////////////// void setup() { init_ustawpin(); }
  11. płytka jest już zrobiona , nic hardwarowo nie mogę zmienić, a dodatkowa płytka to dodatkowe koszta tylko na tranzystor. Może wiecie co robi to co wymyśliłem #define ? Wiem że nadaje stałe wartości przed startem programu, ale nie wiem jak zdefiniować wyjście przed startem by było wysokie przez preprocesor ... można tam #ifdef , #if , itp. Z tym digitalWriteFast , też to jakiś czas zajmuje chociaż widać po opisie bibioteki że mniej : Zwykłe digitalWrite () w rdzeniu Arduino Uno (16 MHz) zajmuje około 6280 nS, podczas gdy manipulacja portem digitalWriteFast () zajmuje 125 nS. https://github.com/NicksonYap/digitalWriteFast Mogę spróbować użyć tego Fast , ale teraz nie dam rady jak mówiłem nie mam jak tego sprawdzić. Jeśli ktoś ma pojęcie czy da się w preprocesorze ustawić pin jako wyjście i nadać mu stan wysoki tak by program startował z takimi wartościami to proszę napiszcie będę wdzięczny . .
  12. a nie można przez preprocesor (funkcje przed startem programu) polecenie #define digitalWrite(OUT,HIGH) ? Niestety teraz nie mam jak tego wgrać na płytkę. W głównej bibliotece Arduino funkcja digitalWrite jest tak wywoływana : void digitalWrite(uint8_t pin, uint8_t val) { uint8_t timer = digitalPinToTimer(pin); uint8_t bit = digitalPinToBitMask(pin); uint8_t port = digitalPinToPort(pin); volatile uint8_t *out; if (port == NOT_A_PIN) return; // If the pin that support PWM output, we need to turn it off // before doing a digital write. if (timer != NOT_ON_TIMER) turnOffPWM(timer); out = portOutputRegister(port); uint8_t oldSREG = SREG; cli(); if (val == LOW) { *out &= ~bit; } else { *out |= bit; } SREG = oldSREG; } Pytasz co tym robię ? Wystawiam wyjście na zgrzewanie dużej mocy i taki start wywoła iskrę która nie była zamierzona. Dlatego muszę pozbyć się tego a nie przemyślalem że Arduino się tak zachowuje że wystawia na początek stan niski a dopiero w SETUP to zmienia po milisekundzie .
  13. Witam, Prosze o poradę jak zrobić by przy starcie programu ustawić pin na stan wysoki , bo jak w setup() dodaję ustawienia : pinMode(OUT, OUTPUT); digitalWrite(OUT,HIGH); , to mi na starcie programu raz mignie wyjście na ułamek sekundy a tego być nie może .
  14. Jak w temacie. Czy należy je podciągnąć rezystorem 10k do masy ? czy mogą zostać tak bez podciągnięcia jeśli używam tylko jednego wyprowadzenia PC5 ? Czy tak należy wykonać by nie było zakłóceń z odczytu na PC5 czy zostawić to luzem ?
  15. Witam , MAm taki sterownik Według producenta pomiar jest realizowany na czujniku Cyfrowym w zakresie odczytu 0-99 st . C , oraz dokładności pomiaru 1 st C . Jest to taki czujnik : Jak widać są to dwa przewody. Rozumiem że jest to pomiar przez 1-wire skoro cyfrowy i kanał 1-wire współgra z zasilaniem , czy raczej będzie to czujnik rezystancyjny? Na ten moment nie mam jak pomierzyć tego czujnika. Interesuje mnie wyciagnięcie danych z tego czujnika do innego urządzenia w celu informowania o temperaturze na piecu . Czy ktoś może wie co to za czujnik z jaką charaketerystyką i jak można z niego odczytać dane , czy jest wogole taka możliwość ?
×
×
  • Utwórz nowe...