Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Arduino - zapojení s potenciometrem a diodou
Jdi na stránku 1, 2  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Měření, regulace a automatizace
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
arduino



Založen: Dec 25, 2014
Příspěvky: 30

PříspěvekZaslal: út prosinec 30 2014, 16:10    Předmět: Arduino - zapojení s potenciometrem a diodou Citovat

Ahoj, mám A-Uno, a potřebuji jako předlohu program, který by mi umožňoval pomocí potenciometru řídit svit diody (ať už ve smysly 100% svitu, anebo neaktivity, anebo ve smyslu postupného rozsvícení).

Zkoušel jsem na netu najít nějaké předlohy, ale pro tento typ Arduina jsem nikdy nic nenašel. A taky potřebuji poradit, jak připojit diodu - toto je pro jinou verzi, a není mi jasné, kam mám na Unu připojit ten zelený vodič. http://www.itnetwork.cz/images/3391/arduino3dil/pwm_schema.png

Děkuji.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ross4435897



Založen: Nov 10, 2009
Příspěvky: 426
Bydliště: Brno

PříspěvekZaslal: út prosinec 30 2014, 16:31    Předmět: Citovat

precti si priklady pro:
analogread
analogwrite
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jezevec
Hlavní moderátor


Založen: Jun 13, 2004
Příspěvky: 5668
Bydliště: Břeclavsko

PříspěvekZaslal: út prosinec 30 2014, 16:31    Předmět: Citovat

arduino napsal(a):
Ahoj, mám A-Uno, a potřebuji jako předlohu program, který by mi umožňoval pomocí potenciometru řídit svit diody...

Na to jsi si snad pořizoval arduino, aby ses ty programy naučil sám psát, nebo se pletu...?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Jirka525



Založen: May 22, 2013
Příspěvky: 325
Bydliště: Psáry JN79GW

PříspěvekZaslal: út prosinec 30 2014, 17:24    Předmět: Citovat

Napiš jakou máš desku a jaký je na ní procesor. Případně pošli schéma. Pak to dáme dohromady.
Jirka

_________________
Jirka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
arduino



Založen: Dec 25, 2014
Příspěvky: 30

PříspěvekZaslal: út prosinec 30 2014, 17:26    Předmět: Citovat

jezevec napsal(a):
arduino napsal(a):
Ahoj, mám A-Uno, a potřebuji jako předlohu program, který by mi umožňoval pomocí potenciometru řídit svit diody...

Na to jsi si snad pořizoval arduino, aby ses ty programy naučil sám psát, nebo se pletu...?


Nepopírám, ale prostě když uvidím hotový program, tak se z něj daleko snáz naučím, jak si pak napsat vlastní... ty taky, když jsi začínam, třeba s bastlením, tak jsi určitě nejdřív něco rozebral, a zkusil sis z toho odvodit funkci.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
jezevec
Hlavní moderátor


Založen: Jun 13, 2004
Příspěvky: 5668
Bydliště: Břeclavsko

PříspěvekZaslal: út prosinec 30 2014, 17:48    Předmět: Citovat

To platí u bastlení, ale neřekl bych, že i u programování. Tady ti jako začátečníkovy moc nepomohou, pokud nejsou psány jako výukové a bohatě komentované, cizí programy. A stažené hex jsou jako učební úplně k ničemu.
Musíš pochopit, jak procesor pracuje a to se naučíš jen vlastním programováním. Třeba pro začátek jen tlačítkem rozsvítit LEDku.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
dreamer



Založen: Oct 22, 2014
Příspěvky: 384

PříspěvekZaslal: út prosinec 30 2014, 18:49    Předmět: Citovat

Právě těch jednoduchých příkladů je přímo v Arduino IDE poměrně velká spousta (Examples) a velice dobře okomentovaných - jen ti nesmí překážet angličtina. Další spoustu příkladů najdeš přímo na stránkách www.arduino.cc případně zkus www.arduino.cz www.duinozone.cz (dnes stránky nefungují ale ještě před několika dny nebyl problém) případně http://arduino8.webnode.cz/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Honza_dy



Založen: Aug 20, 2004
Příspěvky: 2172
Bydliště: Brno-venkov

PříspěvekZaslal: út prosinec 30 2014, 20:10    Předmět: Citovat

a) proč nepokračuješ v původním vlákně které si založil?
b) na googlu je velká spousta studijního materiálu nehledě na česky psanou knihu, kterou postoval alkom01.
c) Nejlépe se naučíš, když si program zkusíš modifikovat a koukat co to udělá. Procesoru neublížíš, v nejhorším případě ti překladač vynadá. To na co jsi se ptal je deklarace proměnné, zkus si o tom něco najít. Pokud neovládáš angličtinu alespoň v základech, jsi nahranej. V češtině toho opravdu moc není.
Já jsem taky samouk. Tady je jeden z mých prvních prográmků, kterým jsem se s arduinem seznamoval. Dost poctivě jsem ho okomentoval, tak se na něj koukni a studuj.
P.S. Teď jsem si to s odstupem času taky prošel a je to napsané strašně prasácky Embarassed
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
frpr666



Založen: Dec 28, 2009
Příspěvky: 1051

PříspěvekZaslal: út prosinec 30 2014, 23:07    Předmět: Citovat

Posílám příklad na AnalogRead a knihovnu FlexiTimer2 a Dbg.
Jsou k stáhnutí na http://playground.arduino.cc/Main/LibraryList
Čte hodnotu A0, A1 a zapisuje jako číslo na uart/usb
Odzkoušeno s Ard. mega 2560 Very Happy

kód:

// - - - - - - - - - - - - - - -
// file: analog1.ino
// reading A0, A1 value every second
//
// - - - - - - - - - - - - - - -

#include <FlexiTimer2.h>
#include <Dbg.h>

#define BREAD(_byte,_bitmask) ((_byte)&(_bitmask))

// Switch on LED on pin 13 each second
volatile uint8_t time;
uint8_t time_ip;
uint8_t time_hf;
uint8_t temp;
uint16_t ad_ch0, ad_ch1;

// - - - - - - - - - - - - - - -
void flash()
{
  time++;
}

// - - - - - - - - - - - - - - -
void setup()
{
  pinMode(13, OUTPUT);
  pinMode(0, INPUT);
  pinMode(1, INPUT);

  FlexiTimer2::set(500, flash); // 500ms period
  FlexiTimer2::start();

  Debug.begin(1,9600);
}

// - - - - - - - - - - - - - - -
void loop()
{
  {
    temp = time;
    time_ip = (~temp) & time_hf;
    time_hf = temp;
  }

  if (BREAD(time_hf,0x01))
  {
    digitalWrite(13, HIGH);
  }
  else
  {
    digitalWrite(13, LOW);
  }
 
  if (BREAD(time_ip,0x01))
  {
    ad_ch0 = analogRead(A0);
   
    ad_ch1 = analogRead(A1);   
   
   dbg("%d\t%d", ad_ch0, ad_ch1);
  }
   
}
// - - - - - - - - - - - - - - -
// EOF

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Honza_dy



Založen: Aug 20, 2004
Příspěvky: 2172
Bydliště: Brno-venkov

PříspěvekZaslal: út prosinec 30 2014, 23:24    Předmět: Citovat

Paráda, tímhle jsi ho poslal přímo do pekla. Teď už jenom hodit arduino do záchodu a spláchnout.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
ross4435897



Založen: Nov 10, 2009
Příspěvky: 426
Bydliště: Brno

PříspěvekZaslal: st prosinec 31 2014, 10:02    Předmět: Citovat

Je to vazne tak tezke?
analogRead()
analogWrite()
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
arduino



Založen: Dec 25, 2014
Příspěvky: 30

PříspěvekZaslal: st prosinec 31 2014, 10:38    Předmět: Citovat

To na co jsi se ptal je deklarace proměnné, zkus si o tom něco najít.

Mě nebaví číst tuny sraček, ze kterejch je polovina stejně blbě, když se to dá odbýt pár větama.

Ano, prostě nějak musím nadeklarovat informace, které ta proměnná definuje. Podle toho, co sem odpozoroval, to funguje asi tak, že si pojmenuju port č.5 červená (podle progamu "int cervena = 5 ; //určenie premennej cervena na pin 5") a pak ho (ten odkaz) přiřadím na místo, kde má něco udělat.

Prostě taková substituce, jako u řešení matematických rovnic.

Jen nevím, jak tomu programu mám nabindovat, CO na tom vstupu má hledat. Když tam chci mít např. poťák, co ty diody bude řídit, musím nějak na ten analogový vstup nabindovat, při jaké úrovni (při jaké poloze jezdce poťáku) napětí má sepnout tu diodu. To nevím.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Honza_dy



Založen: Aug 20, 2004
Příspěvky: 2172
Bydliště: Brno-venkov

PříspěvekZaslal: st prosinec 31 2014, 16:54    Předmět: Citovat

Máš v tom hokej.
Dá se to napsat takto

kód:

int cervena = 5; // celociselna hodnota 5 ma od ted prezdivku cervena

void setup()
{
pinMode (cervena, OUTPUT); // nastav pin 5 jako vystup
}

nebo se to dá napsat i takto:

kód:

void setup()
{
pinMode (5,OUTPUT); // nastav pin 5 jako vystup
}


tyto dva kódy jsou si rovnocené.

To že si něco pojmenuješ, ještě nic neznamená. Důležité je nastavení ve funci setup().
Ještě jinak. Rozepíšu to pod sebe

int - definice datového typu v tomto případě integer
cervena - přezdívka pod kterou bude toto číslo (promněnná) vystupovat v programu
= rovnítko
5 - číselná hodnota proměnné.

Z toho vyplývá že cervena = 5

Chápeš to trošku?

Co se týče čtení analogového signálu z potenciometru, k tomu slouží právě příkaz analogRead(). Procesor umí číst spojitý signál pouze na šesti pinech, které jsou pevně dané. Kromě toho lze tyto piny použít i jako digitální vstupy a výstupy.
Co který pin znamená je hezky znázorněno na tomto obrázku:

Funkci analogRead musíme pouze říct , ze kterého pinu má číst. To uděláme tak, že název pinu vepíšeme jako parametr do závorek.
kód:
 analogRead(A0);

a nebo si ten pin nějak pojmenuj
kód:

int potenciometr = A0;

void setup()
{

}

void loop()
{
analogRead(potenciometr);
}

funkce vrátí hodnotu z AD převodníku v rozsahu 0 - 1023. Jak převodník funguje zde popisovat nebudu, o tom si přečti tunu sraček.

Následně musíme nějak rozhodnout kdy se má ledka vlastně ropzsvítit což se dělá podmínkou if. Řekněme, že ledka se rozsvítí v polovině dráhy potenciometru.
Edit: Než jsem do klávesnice vyzvracel svoje myšlenkové pochody, tak se zde objevil semafor. Pokračovat budu na případné přání.


Naposledy upravil Honza_dy dne st prosinec 31 2014, 17:21, celkově upraveno 2 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
arduino



Založen: Dec 25, 2014
Příspěvky: 30

PříspěvekZaslal: st prosinec 31 2014, 17:08    Předmět: Citovat

Ahoj, nakonec sem vzal tento příklad:

http://arduino.sk/viewtopic.php?f=3&t=150&sid=a78724a471abfc77ae7a0ca4fbfd40c0

a zapojil ho podle tohoto schématu, s použitím A-Nano.

http://img24.cz/images/28113185579979066280.jpg

Je to vše v pořádku? Tlačítko na poruchový stav sem nezapojil, neexsituje. Bude to fungovat?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Honza_dy



Založen: Aug 20, 2004
Příspěvky: 2172
Bydliště: Brno-venkov

PříspěvekZaslal: st prosinec 31 2014, 17:24    Předmět: Citovat

Snažíš se alespoň trošku přemýšlet, nebo bezhlavě opajcuješ nějaký kód a potom se ptáš jiných jestli to bude fungovat?
Co má semafor společného se čtením polohy potenciometru?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Měření, regulace a automatizace Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.24 sekund