Warning: Illegal string offset 'name' in [path]/includes/functions.php on line 6439
Arduino Uno nevaru konfigurēt kontktu kā ievadu.
+

thread: Arduino Uno nevaru konfigurēt kontktu kā ievadu.

  1. #1
    Junior Member
    Nov 2008
    7

    Arduino Uno nevaru konfigurēt kontktu kā ievadu.

    Programma kā ieslēgt releju vai LED. No Jutub. Arduino nodarbība #2, programmas paraugs. Pārbaudē kļūdas nerāda. Mēģināju uz citiem kontaktiem. Programma nedarbojas. Arī 13 izvada LED neizdodas ieslēgt ar pogu. Programma Blink darbojas ar 13 izvada LED. Plate ticamākais nav jauna.

  2. #2
    Moderator
    Jan 2009
    Rīga
    4,436

    Jūtūbā ir daudz visādu video, tai skaitā "brīnumainu".

    Vienkāršākais ko darīt: iekopē kodu formumā un paskatīsimies kas tev nesanāk.

  3. #3
    Junior Member
    Nov 2008
    7

    Neejošā programma. 13. izvada LED vajadzēja degt.
    int poga = 5;
    int relejs = 13;
    int pogasstavoklis = digitalRead(poga);
    void setup()
    {
    pinMode(poga, INPUT); // poga input
    pinMode(relejs, OUTPUT); //relejs output
    }
    void loop()
    {
    if (pogasstavoklis == 1)
    {
    digitalWrite(relejs, HIGH); //releja izejā 1
    delay(500); // aizture 500 milisekundes
    }
    else
    {
    digitalWrite(relejs, LOW); //releja izejā 0
    delay(500); // aizture 500 milisekundes
    }
    }

  4. #4
    Moderator
    Jan 2009
    Rīga
    4,436

    Sitā būs pareizi.

    :
    #define poga 5
    #define relejs 13
    
    //int pogasstavoklis = digitalRead(poga);
    void setup() {
      pinMode(poga, INPUT); // poga input
      pinMode(relejs, OUTPUT); //relejs output
    }
    
    void loop() {
      if (digitalRead(poga) == HIGH)   {
        digitalWrite(relejs, HIGH); //releja izejā 1
        delay(500); // aizture 500 milisekundes
      }
      else   {
        digitalWrite(relejs, LOW); //releja izejā 0
        delay(500); // aizture 500 milisekundes
      }
    }
    Tagad teorija.
    1) paldies manam skolotājam karloslv par pamatu iemācīšānu.

    2) Vienkāršā varinatā arduino programma sastāv no 3 daļām
    * Mainīgo deklarācija un kāju definēšana
    Vēlams izmantot #define, jo tas samazina izmantotās atmiņas apjomu. Kai saprastu kā jālieto, jāpalasa instrukcija
    https://www.arduino.cc/reference/en/
    * Inicializācija, kuru taisa setup
    setup izpildās vienu reizi
    * programmas cikls loop
    šo arduino izsauc regulāri tiklīdz vienreiz izpildās loop un beidzas, tā arduino izdara "slepenas lietas", piemēram apstrādā serial port datus un tad atkal izsauc loop un tā bezgalīgi

    3) tava kļūda bija nepareizā pogas datu deklarēšanā. rezultātā arduino nelasa pogas stāvokli un relejs nekustās.
    kad gribi noskaidrot pogas stāvokli, tad izpildi digitalRead. respektīvi nolasi pogu.
    rezultātu (mans kods) uzreiz apstādājam ar if un kustinam releju
    var arī nolasīt mainīgajā pogasstavoklis un tad apstrādāt ar if palīdzību
    galvenais regulāri iekš loop jānolasa pogas stāvokli izmantojot digitalRead

    Patīkamu mācīšanos un eksperimentēšanu. Lai izdodas!

  5. #5
    Junior Member
    Nov 2008
    7

    Post

    Paldies par atvēlēto laiku maniem jautājumiem. Ātrāk tieku novirzīts uz pareizā ceļa.

+