# ATMEL mikrokontrolleri >  Arduino Uno nevaru konfigurēt kontktu kā ievadu.

## Senjors

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.

----------


## JDat

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.

----------


## Senjors

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
   }
   }

----------


## JDat

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!

----------


## Senjors

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

----------

