Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

nie dociera sygnał z potencjometru na arduino

andrzej228 10 Sie 2017 17:19 390 4
  • #1 10 Sie 2017 17:19
    andrzej228
    Poziom 3  

    witam, zrobiłem prosty układ starowania silniczkiem 12V przez arduino. Potencjometr ze schematu ma regulowac czas podawania stanu wyokiego na silnik . lecz gdy wszystko jest podłaczone na płytke uniwersalną to silnik caly czas się kręci , nie wyłacza sie . Czyli jak na moje nie dociera sygnał z potencjometru. Potencjometr , oraz wejscie Analogowe zostało sprawdzone - działa . Na schemacie nie zamiesciłem tego , ale jeszcze jest dioda prostownicza . I jezeli schemat jest nieczytelny to wybaczcie , ale robiłem co mogłem
    nie dociera sygnał z potencjometru na arduino

  • #3 10 Sie 2017 17:54
    andrzej228
    Poziom 3  

    int pot ;
    unsigned long czas;
    unsigned long drugiczas;
    void setup() {
    pinMode ( 8, OUTPUT );
    pinMode ( A4 , INPUT );
    pinMode ( 3, INPUT_PULLUP );
    pinMode ( 9, OUTPUT );
    pinMode ( 10 , OUTPUT );
    Serial.begin ( 9600);
    }

    void loop() {
    pot= analogRead ( A4);
    pot = map(pot , 1, 1022 , 1,5);
    czas= millis();

    switch (pot){

    case 1:
    przerwa=1800; // 50ml

    case 2 :
    przerwa=2200; // 75ml
    break;

    case 3 :
    przerwa= 2690; //100
    break;

    case 4 :
    przerwa=5400; // 250ml
    break;

    case 5 :
    przerwa=9750; //500ml
    break;


    }

    if (digitalRead ( 3 ) == HIGH ){
    delay (30);
    if ( digitalRead (3) == LOW ){
    digitalWrite ( 8, HIGH );
    digitalWrite ( 10, HIGH ) ;
    drugiczas= czas; }

    if (( digitalRead ( 8)== HIGH) && (czas-drugiczas>= przerwa))
    {
    digitalWrite ( 8 , LOW );
    drugiczas= czas;
    digitalWrite ( 10, LOW );
    delay ( 1800);
    digitalWrite ( 9, HIGH );
    delay ( 2000);
    digitalWrite ( 9 , LOW );

    }

    Serial.println( pot );
    }}

    Dodano po 17 [minuty]:

    jeszcze trzeba zaznaczyć , ze ten problem wyniknął dopiero po przylutowaniu wszystkiego na plytke uniwersalną. A sprawdzałem wszystkie luty , to wszystko wskazuje , ze jest dobrze podłączone .

    (10 Sie 2017 17:37) Polecenie moderatora: dondu

    Wklejając kod programu używaj proszę znacznika SYNTAX. Składnia jest wtedy kolorowana i łatwo kod analizować, a dodatkowo posty są krótkie. Instrukcja: http://www.elektroda.pl/rtvforum/topic3300722.html

  • #4 10 Sie 2017 20:15
    jaclew
    Poziom 13  

    Skoro bylo ok na prototypie, a na zlutowanej plytce juz nie jest to wynika z tego ze albo jednak cos zle polaczyles, albo zostal uszkodzony ktorys element (najpewniej tranzystor) Ta dioda o ktorej wspominasz to gdzie sie znajduje? Schemat rysowany byle jak, nie oddaje tego co pokazujesz w kodzie. To zniecheca do pomocy. Mam prosbe - daj nieco wiecej od siebie bo opinie o tym dziale (arduino) sa przez to czesto fatalne.

  • #5 11 Sie 2017 05:14
    emarcus
    Poziom 34  

    andrzej228 napisał:
    witam, zrobiłem prosty układ starowania silniczkiem 12V przez arduino. Potencjometr ze schematu ma regulowac czas podawania stanu wyokiego na silnik .

    Byc może to było takim życzeniem/zamiarem, lecz w świetle zamieszczonego diagramu, i przedstawionego programu, nie jest to możliwe(!).
    Aby była możliwośc odczytu wartości analogowych z potencjometru, winien on (sygnał z suwaka pot.) byc podłączony do któregokolwiek wejścia analogowego na płytce Arduino (A0 do A5). Przedstawiony obrazek przewiduje podłączenie tego sygnału pod pin10, który z natury może byc skonfigurowany jako cyfrowe wyjście/wejście, albo umownie ‘analogowe’ wyjście z sygnałem PWM.
    Twój program konfiguruje ten pin jako wyjście cyfrowe zasilające suwak potencjometru(!!!).
    Mimo powyższego próbujesz czytac pot. z pinu A4 , który jest pusty!!!.
    Nie ma to wiele sensu.
    Dalej,
    Program przewiduje wykorzystanie wejścia na pin3 (prawdopodobnie pushButton Sw.), o czym nie ma nic na diagramie.
    Dalej; jaki jest sens;
    if (digitalRead ( 3 ) == HIGH ){
    delay (30);
    Pin ten, gdy nie aktywny, zawsze jest HIGH, więc po co ten delay w każdej pętli ? ;Czyżby miałby to byc swego rodzaju ‘debounce”’ ?

    e marcus

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME