KasparasDope

Arduino pagalbos [C++]

Recommended Posts

Sveiki. Taigi jau kelias valandas niekaip negaliu sutvarkyti lempu─Źi┼│.

Prie microcontrollerio esu pajunges 3 lemputes ir mygtuk─ů and breadboardo.

Lemput─Śs prijungtos prie 12, 11 ir 10 pin┼│. Mygtukas prie 2 pino.

Pats sumanymas buvo padaryti "judan─Źias" lemputes. Jos mirgsi tokia tvarka, kad susidaro tam tikras eili┼íkumas j┼│ migrs─Śjime. Su tuo problem┼│ nebuvo. Problema atsirado kai nepaj─Śgiau nieko sugalvoti, o tiksliau kaip sustabdyti tas lemputes laikant mygtuk─ů ir prat─Östi i┼í tos vietos kurioje sustabd┼żiau.

Lemput─Śs mirgsi tokia tvarka:

RED - yellow - green

RED - YELLOW - green

RED - YELLOW - GREEN

red - YELLOW - GREEN

red - yellow - GREEN

red - yellow - green

Repeat.

Su capslocku rei┼íkia, kad lemput─Ś dega, be capslocko rei┼íkia, kad nedega.

Nuspaudus mygtuk─ů viskas tvarkoje, lemput─Śs baigia mirgs─Śti ir dega tik tos, kurios deg─Ś kai nuspaustas mygtukas buvo, bet negaliu su tuo pratesimu nieko sugalvoti. Atleidus tai pradeda skirtingai mirgs─Śti, tai u┼żg─Östa, jau nebe┼żinau kaip daryti, band┼żiau kelet─ů variant┼│ ir nei vienas pilnai nei┼ídeg─Ś.

// #define LED_RED 12
// #define LED_YELLOW 11
// #define LED_GREEN 10

#define BUTTON 3

int LED_PIN[3] = {12, 11, 10};
bool LED_STAGES[6][3] = {
	{HIGH, LOW, LOW},
	{HIGH, HIGH, LOW},
	{HIGH, HIGH, HIGH},
	{LOW, HIGH, HIGH},
	{LOW, LOW, HIGH},
	{LOW, LOW, LOW}
};

bool ledStage = 0;
bool lastButton = LOW;
int lastPosition = 0;

void setup()
{
	Serial.begin(9600);

	Serial.print("\n----- NEW MONITOR -----\n");

	pinMode(LED_PIN[0], OUTPUT); // Red
	pinMode(LED_PIN[1], OUTPUT); // Yellow
	pinMode(LED_PIN[2], OUTPUT); // Green

	pinMode(BUTTON, INPUT);
}

void loop()
{
	for(int i = lastPosition; i < 3; i++)
	{
		if(digitalRead(BUTTON) == HIGH)
		{
			lastButton = HIGH;
			for(int j, k; j < 6, k < 3; j++, k++)
			{
				if(digitalRead(LED_PIN[i]) == !LED_STAGES[j][k])
				{
					ledStage = j;
					if(i == 2) lastPosition = 0;
					else lastPosition = i;
				}
			}
			return true;
		}
		else if(lastButton == HIGH && digitalRead(BUTTON) == LOW)
		{
			lastButton = LOW;
			digitalWrite(LED_PIN[i], !LED_STAGES[ledStage++][i]);
			delay(1000);
		}
		else
		{
			char buffer[25];
			sprintf(buffer, "1. LED: %d; READ: %d;\n", i, digitalRead(LED_PIN[i]));
			Serial.print(buffer);
			digitalWrite(LED_PIN[i], !digitalRead(LED_PIN[i]));
			sprintf(buffer, "2. LED: %d; READ: %d;\n", i, digitalRead(LED_PIN[i]));
			Serial.print(buffer);
			delay(1000);
		}
	}
}

 

Dalintis ┼í─» prane┼íim─ů


Nuoroda iki šio pranešimo
Dalintis per kit─ů puslap─»

int counter=1;

 

...

 

void loop()

{

   if(button_state==LOW)

   {

      if(counter>=7) counter=counter%6;

┬á ┬á ┬á //─Źia sura┼íai led state pagal counter─». Counteris vaik┼íto nuo 1 iki 6, atitinkamai sudedi digitalwrite ─» ledus pagal counterio reik┼ím─Ö.

      counter=counter+1;

      delay(1000);

   }

   else delay(100);

}

 

Sori jeigu ─Źia nes─ůmon─Ś, 100 met┼│ neprogramavau Arduino, bet a┼í bandy─Źiau ka┼żk─ů tokio.

Esm─Ś loop'o prad┼żioj pasidaryti if'─ů, kuris u┼żmest┼│ trump─ů delay jeigu mygtukas nuspaustas ir tiesiog baigt┼│ cikl─ů. Jeigu mygtukas nenuspaustas, kas cikl─ů po vien─ů didini counter'─», kuris ─»jungia atitinkam─ů lempu─Źi┼│ state'─ů, o pasiek─Ös paskutin─» state gr─»┼żta prie pirmo.

Redaguota , nario tepalas

Dalintis ┼í─» prane┼íim─ů


Nuoroda iki šio pranešimo
Dalintis per kit─ů puslap─»
26 minutes prie┼í, tepalas para┼í─Ś:

int counter=1;

 

...

 

void loop()

{

   if(button_state==LOW)

   {

      if(counter>=7) counter=counter%6;

┬á ┬á ┬á //─Źia sura┼íai led state pagal counter─». Counteris vaik┼íto nuo 1 iki 6, atitinkamai sudedi digitalwrite ─» ledus pagal counterio reik┼ím─Ö.

      counter=counter+1;

      delay(1000);

   }

   else delay(100);

}

 

Sori jeigu ─Źia nes─ůmon─Ś, 100 met┼│ neprogramavau Arduino, bet a┼í bandy─Źiau ka┼żk─ů tokio.

Esm─Ś loop'o prad┼żioj pasidaryti if'─ů, kuris u┼żmest┼│ trump─ů delay jeigu mygtukas nuspaustas ir tiesiog baigt┼│ cikl─ů. Jeigu mygtukas nenuspaustas, kas cikl─ů po vien─ů didini counter'─», kuris ─»jungia atitinkam─ů lempu─Źi┼│ state'─ů, o pasiek─Ös paskutin─» state gr─»┼żta prie pirmo.

Pabandysiu rytoj, d─Śkui!

prie┼í 10 valandas(-┼│), tepalas para┼í─Ś:

int counter=1;

 

...

 

void loop()

{

   if(button_state==LOW)

   {

      if(counter>=7) counter=counter%6;

┬á ┬á ┬á //─Źia sura┼íai led state pagal counter─». Counteris vaik┼íto nuo 1 iki 6, atitinkamai sudedi digitalwrite ─» ledus pagal counterio reik┼ím─Ö.

      counter=counter+1;

      delay(1000);

   }

   else delay(100);

}

 

Sori jeigu ─Źia nes─ůmon─Ś, 100 met┼│ neprogramavau Arduino, bet a┼í bandy─Źiau ka┼żk─ů tokio.

Esm─Ś loop'o prad┼żioj pasidaryti if'─ů, kuris u┼żmest┼│ trump─ů delay jeigu mygtukas nuspaustas ir tiesiog baigt┼│ cikl─ů. Jeigu mygtukas nenuspaustas, kas cikl─ů po vien─ů didini counter'─», kuris ─»jungia atitinkam─ů lempu─Źi┼│ state'─ů, o pasiek─Ös paskutin─» state gr─»┼żta prie pirmo.

Pavyko, padariau! D─Śkui u┼ż mint─», pad─Śjai labai!

#define BUTTON 2

int LED_PIN[3] = {12, 11, 10};
bool LED_STAGES[6][3] = {
	{LOW, HIGH, HIGH},
	{LOW, LOW, HIGH},
	{LOW, LOW, LOW},
	{HIGH, LOW, LOW},
	{HIGH, HIGH, LOW},
	{HIGH, HIGH, HIGH}
};

int counter = 0;

void setup()
{
	Serial.begin(9600);

	Serial.print("\n----- NEW MONITOR -----\n");

	pinMode(LED_PIN[0], OUTPUT); // Red
	pinMode(LED_PIN[1], OUTPUT); // Yellow
	pinMode(LED_PIN[2], OUTPUT); // Green

	pinMode(BUTTON, INPUT);

	digitalWrite(LED_PIN[0], HIGH);
	digitalWrite(LED_PIN[1], HIGH);
	digitalWrite(LED_PIN[2], HIGH);
}

void loop()
{
	if(digitalRead(BUTTON) == LOW)
	{
		if(counter >= 6) counter = 0;
		for(int i = 0; i < 3; i++) digitalWrite(LED_PIN[i], LED_STAGES[counter][i]);
		counter += 1;
		delay(1000);
	}
	else delay(100);
}

 

Gal─Śtum paklausti, kod─Śl LED'┼│ states yra opposite. Vietoj trij┼│ rezistori┼│ panaudojau vien─ů, kad b┼źt┼│ tvarkingiau. Dabar pinai prijungti prie ledo minuso, o prie 5V srov─Śs pajungtas rezistorius, kuris jungia LED'o plius─ů prie srov─Śs. Ne┼żinau ar gra┼żiai paai┼íkinau, tai prisegu foto :D. Dar reik─Śs pasidom─Śti ar taip i┼ívis legit, ar taip daroma :D, bet svarbiausia su kodu susitvarkiau, dabar reik─Śs su laidais pa┼żaist. Thanks again!

73036087_399232470954751_7250613619870662656_n.thumb.jpg.668afe2dbceb7f3cf883015d2464620c.jpg

Dalintis ┼í─» prane┼íim─ů


Nuoroda iki šio pranešimo
Dalintis per kit─ů puslap─»
prie┼í 11 valandas(-┼│), KasparasDope para┼í─Ś:

Gal─Śtum paklausti, kod─Śl LED'┼│ states yra opposite. Vietoj trij┼│ rezistori┼│ panaudojau vien─ů, kad b┼źt┼│ tvarkingiau. Dabar pinai prijungti prie ledo minuso, o prie 5V srov─Śs pajungtas rezistorius, kuris jungia LED'o plius─ů prie srov─Śs. Ne┼żinau ar gra┼żiai paai┼íkinau, tai prisegu foto :D. Dar reik─Śs pasidom─Śti ar taip i┼ívis legit, ar taip daroma :D, bet svarbiausia su kodu susitvarkiau, dabar reik─Śs su laidais pa┼żaist. Thanks again!
 

73036087_399232470954751_7250613619870662656_n.thumb.jpg.668afe2dbceb7f3cf883015d2464620c.jpg

Gal─Śtum ledus jungti prie bendro minuso per rezistori┼│, nereik─Śt┼│ tada apvertin─Śti high ir low state'┼│ ir, kai led'ai i┼íjungti, netur─Śtum "kaban─Źio" kontakto su 5V, didinan─Źio tikimyb─Ö ka┼żk─ů u┼żtrumpinti. Bet toks jungimas per vien─ů rezistori┼│ dalina srov─Ö per ledus, tad jeigu ┼ívie─Źia keli vienu metu, tai jie ┼ívies silpniau negu kai ─»jungtas tik ka┼żkuris vienas.

Redaguota , nario tepalas

Dalintis ┼í─» prane┼íim─ů


Nuoroda iki šio pranešimo
Dalintis per kit─ů puslap─»
prie┼í 4 valandas(-┼│), tepalas para┼í─Ś:

Gal─Śtum ledus jungti prie bendro minuso per rezistori┼│, nereik─Śt┼│ tada apvertin─Śti high ir low state'┼│ ir, kai led'ai i┼íjungti, netur─Śtum "kaban─Źio" kontakto su 5V, didinan─Źio tikimyb─Ö ka┼żk─ů u┼żtrumpinti. Bet toks jungimas per vien─ů rezistori┼│ dalina srov─Ö per ledus, tad jeigu ┼ívie─Źia keli vienu metu, tai jie ┼ívies silpniau negu kai ─»jungtas tik ka┼żkuris vienas.

A─Źi┼ź u┼ż patarim─ů, taip ir padarysiu.

Pasteb─Śjau, kad dalina srov─Ö, ta─Źiau darau tik mokymosi tikslams, tai nelabai man ir svarbu ar ry┼íkiai ┼ívie─Źia, ar nelabai. Svarbiau buvo tvarkingai pajungti, kad neb┼źt┼│ labai viskas apkrauta, ta─Źiau tur─Śsiu omeny. D─Śkui!

Dalintis ┼í─» prane┼íim─ů


Nuoroda iki šio pranešimo
Dalintis per kit─ů puslap─»

Prisijungti prie diskusijos

Palikti atsakym─ů galite i┼í karto, o u┼żsiregistruoti v─Śliau. Jeigu jau turite paskyr─ů m┼źs┼│ forume, Prisijunkite.

Sve─Źias
Atsakyti šioje temoje...

×   ─«klijuotas tekstas turi teksto formatavim─ů.   Pa┼íalinti teksto formatavim─ů

  Galimi tik 75 veidukai.

×   Nuoroda buvo automati┼íkai ─»terpta.   ─«terpti nuorod─ů paprastai

×   J┼źs┼│ ankstesnis prane┼íimas buvo atkurtas.   I┼ívalyti redaktori┼│

×   You cannot paste images directly. Upload or insert images from URL.


  • ┼áiame puslapyje nar┼ío:   0 nariai

    N─Śra registruot┼│ nari┼│ per┼żi┼źrin─Źi┼│ ┼í─» forum─ů.

  • eneba
  • eneba
  • eneba



  • SuperGames programele
  • SuperGames programele