Radíme si navzájem

Datum
Vložil
Titulek

Re: GSM a Arduino

http://tronixstuff.com/2014/01/08/tutorial-arduino-and-sim900-gsm-modules

Datum
Vložil
Titulek

Rozsvecovani diod

Ahoj, začínám s Arduinem od píky, prošel jsem základy na webu. Potřeboval bych poradit s úlohou postupného spínání diod více tlačítky: po startu programu se rozsvítí první dioda, po stisku 1. tlačítka se tato dioda zhasne a rozsvítí se druhá, po stisku 2. tlačítka se zhasne druhá a rozsvítí se třetí atd. Díky předem.

Datum
Vložil
Titulek

Re: Rozsvecovani diod

Ahoj, napsal jsem jednoduchý kód pro požadovanou činnost. Jde to napsat různými způsoby, trochu to učesat, nadeklarovat proměnné, použít SWITCH/CASE atd...
Nicméně jako ukázka to snad bude stačit .


Pěkný den všem ;-)



Zapojení:
Tlačítka jsou zapojena k pinům D4,5,6 a spínají proti GND, přičemž se využívají interní pull-up rezistory.
LED jsou zapojeny přes rezistory k pinům D7,8,9 a GND.



void setup()
{
pinMode(4, INPUT_PULLUP); //nastaví pin jako vstupní
pinMode(5, INPUT_PULLUP);
pinMode(6, INPUT_PULLUP);

pinMode(7,OUTPUT); //nastaví pin jako výstupní
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);

zhasni_vse(); //zhasne všechny diody
digitalWrite(5,HIGH); // rozsvítí první diodu
}

void loop()
{
if(digitalRead(4) == LOW)
{
zhasni_vse();
digitalWrite(7, HIGH);
}
if(digitalRead(5) == LOW)
{
zhasni_vse();
digitalWrite(8, HIGH);
}
if(digitalRead(5) == LOW)
{
zhasni_vse();
digitalWrite(9, HIGH);
}
}

void zhasni_vse() // zhasne všechny LED
{
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}

Datum
Vložil
Titulek

Re: Re: Rozsvecovani diod

Když to teď vidím ve větším okně, tak jsem si všiml, že je tam dvakrát digitalRead(5) , jednou tam má být digitalRead(6)

Datum
Vložil
Titulek

Re: Rozsvecovani diod

Možná by se tomu nemuselo říkat postupné rozsvěcování, když to neovládáš jedním tlačítkem, ale každou led samostatně svým tlačítkem, ne? Vychytávka by mohla být doplnit do programu kontrolu zda nejsou stisknuta dvě různá tlačítka naráz a v takovém případě vše zhasnout ;-)
Co třeba nějak takhle?

void loop()
{
if(digitalRead(4) == LOW)
{
zhasni_vse();
digitalWrite(7, HIGH);
}
if(digitalRead(5) == LOW)
{
zhasni_vse();
digitalWrite(8, HIGH);
}
if(digitalRead(6) == LOW)
{
zhasni_vse();
digitalWrite(9, HIGH);
}

// Stisk alespoň dvou tlačítek najednou = zhasni vše
byte stisknutoTlacitek = 0;
if(digitalRead(4) == LOW) {
stisknutoTlacitek++; //proměnnou stisknutoTlacitek zvetši o 1
}
if(digitalRead(5) == LOW) {
stisknutoTlacitek++;
}
if(digitalRead(6) == LOW) {
stisknutoTlacitek++;
}
if(stisknutoTlacitek > 1)
{
zhasni_vse();
}
}

Datum
Vložil
Titulek

chyba kompilácie

zdravým mám jeden problém pri kompilácii mi vyhadzuje nasledujúcu chybu jedná sa o program pre včelársku váhu ktorá posiela správy sms o hmotnosti atd. ten riadok by sa mal týkať toho že za určitej okolnosti pošle sms s textom ktorí sa má zadať za lomítko ale pokiaľ viem tak lomitkom sa ohraničuje komentár cez viac riadkov. Ak by ste mi pomohli bol by som rád.
Imker_Stockwaage_V1_31.ino:44:47: error: expected unqualified-id before '/' token
Chyba kompilace.
tá chyba je v tom poslednom riadku
// Daten für Netzbetreiber der Handykarte
#define APN "pinternet.interkom.de" // APN des Netzwerkdienstes. (hier O2)
#define Username "" // Username APN
#define Passwort "" // Passwort APN
#define PIN "" // Pin der Sim Karte
char phone_number[]="+49XXXXXX"; //anzurufende Nummer bei Schwarmalarm
char SMS_number[]="+49XXXXXX"; // SMS Nummer für Akkualarm und SMS Übertragung
char SMS_Kurzmitteilungsnummer[]="+49XXXXXX"; /Spezifische SMS Kurzmitteilungsnummer des Handykartenanbieters

Datum
Vložil
Titulek

Re: chyba kompilácie

chyba je v poznamke, nema dve lomitka, spravne to ma byt takto:
char SMS_Kurzmitteilungsnummer[]="+49XXXXXX"; //Spezifische SMS Kurzmitteilungsnummer des Handykartenanbieters

Datum
Vložil
Titulek

Re: Re: chyba kompilácie

To som skúšal ale potom mi vyhodí mikion dalších chýb

Datum
Vložil
Titulek

Sériová komunikace

Dobrý večer , mohu se Vás zeptat jak co nejjednodušeji udělat, abych četl s arduinem sériovou linku a přijímal tři znaky. Například přijde mi : im1 a arduino rozsviti led. Teď mi to funguje ale jen po jednom znaku. Ještě dodám že přijde najednou více těch znaků například im1im2im3im4, takže by se to muselo v arduinu asi dát nak do řetězce a postupně vyčítat, ale vůbec nevím jak to udělat. Za každou radu budu moc vděčný. Moc děkuji

Datum
Vložil
Titulek

Re: Sériová komunikace

Pokud to chceš opravdu "co nejjednodušeji", tak neposílej a nečti 3znaky, ale jenom jeden - např. A, B a C.

Datum
Vložil
Titulek

Možná hloupý dotaz

Zdravím.
Potřebuji led signalizaci zapnutého přístroje do jiné místnosti v budově ( cca 15m uvnitř 1 zeď )
Zajímal jsem se o arduino a chtěl koupit některou desku na hraní s elektronikou a pak jsem našel modul NRF24L01 který umí příjmat a vysílat asi data a bůhví co ještě..
Chtěl jsem se zeptat, jestli by to moje potřeby splnilo a také, jestli po případném naprogramování přes některou arduino desku lze použít modul samostatně nebo všechny moduly jdou použít jen s nějakou arduino-deskou?

Datum
Vložil
Titulek

Re: Možná hloupý dotaz

Ano, jde to. Ten NRF24L01 je 2.4Ghz tak umí vysílat a příjmat data.Ano splní. ty NR24L01 umí komunikovat s jiným jakíkoliv NR24L01 teda 2.4Ghz frekvencí. Ale pro zikaní dat zda li je přístroj zapnut musí se něco použít to co zjistí zda je zapnut nebo ne a pak přes ten modul pošle data a další arduino s tým modulem to příjme a rosvítí nebo zhasne kotrolku led.

Datum
Vložil
Titulek

Re: Možná hloupý dotaz

zbytečně složitý, na těch 15m bych natáhl kabel a zeď někde v rohu kde to není vidět provrtal. Nebo jestli nechceš vrtat a tahat kabel použij něco jako toto: http://www.santy.cz/bezdratova-komunikace-c32/modul-433mhz-arduino-sada-i63/ to funguje jako seriová linka.

Datum
Vložil
Titulek

Zastavení

Ahoj, sem začátečník a potřeboval bych poradit mam program, který mi funguje, ale potřebuji ho pomocí dvou tlačítek zastavit a nevím jak. Mam arduino uno a dva 7 segmentové displeje při připojení 2 pinu na zem se mi rozjedou, ale nevím jak zadat příkaz pro zastavení každého segmentu samostatně pomocí 2 tlačítek.
http://pastebin.com/uKczydVs

Datum
Vložil
Titulek

Meteostanice s SHT21+BMP085+netshield

Dobrý večer,

Potřebuji poradit se zádrhelem na meteostanici a SHT21 a BMP085: stanice posílá data na thingspeak, ale po každém restartu je třeba sdělit aktuální tlak čidlu BMP85 - kalibrovat jej. Potřebuji tedy poslat přes netshield kalibrační 6timístné číslo. Jak to udělat elegantně přes netshield?
Kód pošlu na vyžádání, nechci zaplevelovat diskusi.

Děkuji za info



Datum
Vložil
Titulek

Re: Meteostanice s SHT21+BMP085+netshield

Proc potrebuje meteostanice vedet tlak, kdyz ho ma z cidla? Pro prepocet tlaku na hladinu more je barometricka rovnice viz http://www.amut.net/domains/amut.net/article.php?id=18 , jinak normalne tlak na meteo pomoci arduina merim na vice stanicich- meteo.amut.net

Datum
Vložil
Titulek

Re: Re: Meteostanice s SHT21+BMP085+netshield

Máte pravdu,

děkuji a už budu datasheety číst pořádně.

Datum
Vložil
Titulek

Akcelerometr a I2C

Dobrý den, poradil by nějaký odborník začátečníkovi? Jednoduchý program na čtení hodnot z akcelerometru v komunikaci I2C.
Děkuji moc za radu.

Datum
Vložil
Titulek

Pomóóóc!!

Dobrý den. Potřebuji pomoc s kódem. Umí spínat jenom jednu led diodu ale ja potřebuji tři diody na tři tlačítka. Děkuji.
Code:

boolean svetlo = false; // Pomocná hodnota světlo


void setup()
{
pinMode(5, OUTPUT);
pinMode(2, INPUT);
}
void loop()
{

if (digitalRead(2))
{
if (svetlo) svetlo = false; else svetlo = true;
digitalWrite(5, svetlo);
while (digitalRead(2)) delay(50);
}
}

Datum
Vložil
Titulek

Re: Pomóóóc!!

boolean svetlo1 = false;
boolean svetlo2 = false;
boolean svetlo3 = false;
void setup()
{
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);

pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
}
void loop()
{

if (digitalRead(2))
{
svetlo1 = !svetlo1;
digitalWrite(5, svetlo1);
while (digitalRead(2)) delay(50);
}

if (digitalRead(3))
{
svetlo2 = !svetlo2;
digitalWrite(6, svetlo2);
while (digitalRead(3)) delay(50);
}

if (digitalRead(4))
{
svetlo3 = !svetlo3;
digitalWrite(7, svetlo3);
while (digitalRead(4)) delay(50);
}

}

Datum
Vložil
Titulek

Re: Re: Pomóóóc!!

Prominte ale nefunguje to kdyby tam bylo udělej světlo a nopak tak by to fungovalo ale za to se musí zmáčkou 1. 2. az pak třetí se zapne když ho chci vypnout ta 1. 2. a pka 3. a vypnese :-(

Datum
Vložil
Titulek

Re: Re: Re: Pomóóóc!!

Asi nevím jak to myslíte. Jak by to teda podle vás mělo být ?

Datum
Vložil
Titulek

Re: Re: Re: Re: Pomóóóc!!

Jak již jste určitě vyzkoušeli LED dioda svítí pouze, když je zmáčkuté tlačítko. Nyní program trošku zmodifuikujeme a tlačítko nyní bude mít funkci tzv. START/STOP. Stiskem LEDku rozsvítíme a dalším stiskem diodu zhasneme.

int LEDka = 10; // LED připojena na pin 10
int TLAC = 9; // Tlacitko pripojeno na pin 9
boolean svetlo = false; // Pomocná hodnota světlo


void setup()
{
pinMode(LEDka, OUTPUT); // pin 10 nastaven jako výstup
pinMode(TLAC, INPUT); // pin 9 nastaven jako vstup

}
void loop()
{
// když je hodnota na tlačítku vysoká (true)
if (digitalRead(TLAC))
{
//když je světlo, udělej tmu a naopak
if (svetlo) svetlo = false; else svetlo = true;
//zapiš hodnotu světla na výstup
digitalWrite(LEDka, svetlo);
//dokud je tlačítko sepnuté čekej 50ms
while (digitalRead(TLAC)) delay(50);
}
}


mám to od tut: http://arduino8.webnode.cz/news/lekce-3-pripojime-ledku-a-tlacitka/


jen to má tam být 3x

Datum
Vložil
Titulek

Re: Re: Re: Re: Re: Pomóóóc!!

Když víš že to má být jen 3x tak proč si to prostě nezkopíruješ (Kdyby jsi nevěděl kopíruje se Ctrl + C, Ctrk + V)

Datum
Vložil
Titulek

Re: Re: Re: Re: Re: Re: Pomóóóc!!

Tak to vyzkoušej a už jsem to zkoušel "dávno" a nešlo to!

Datum
Vložil
Titulek

Re: Re: Re: Re: Re: Re: Re: Pomóóóc!!

Má to vypadat asi takhle?
// tlacitka jsou nezávislá
int LEDka1 = 10; // LED připojena na pin 10
int LEDka2 = 11; // LED připojena na pin 11
int LEDka3 = 12; // LED připojena na pin 12
int TLAC1 = 7; // Tlacitko pripojeno na pin 7
int TLAC2 = 8; // Tlacitko pripojeno na pin 8
int TLAC3 = 9; // Tlacitko pripojeno na pin 9
boolean svetlo = false; // Pomocná hodnota světlo
boolean tlacitko, tl1, tl2, tl3, tl1a, tl2a, tl3a; // tl1_stav TLAC1, tl1a_pamet tl1

void setup()
{
pinMode(LEDka1, OUTPUT); // pin nastaven jako výstup
pinMode(LEDka2, OUTPUT); // pin nastaven jako výstup
pinMode(LEDka3, OUTPUT); // pin nastaven jako výstup
pinMode(TLAC1, INPUT); // pin nastaven jako vstup
pinMode(TLAC2, INPUT); // pin nastaven jako vstup
pinMode(TLAC3, INPUT); // pin nastaven jako vstup

}
void loop()
{
tl1 = digitalRead(TLAC1); // nacteni stavu tlacitka1
tl2 = digitalRead(TLAC2);
tl3 = digitalRead(TLAC3);

if (!tl1 && !tl2 && !tl3)
goto konec1;

if (tl1 && !tl1a == 1)
{
digitalWrite(LEDka1, !digitalRead(LEDka1)); // zmena stavu LED1
tl1a = 1; // tlacitko1 sepnuto
}
if (tl2 && !tl2a)
{
digitalWrite(LEDka2, !digitalRead(LEDka2));
tl2a = 1;
}
if (tl3 && !tl3a)
{
digitalWrite(LEDka3, !digitalRead(LEDka3));
tl3a = 1;
}
delay(50);

konec1:
// || &&
if (!tl1) tl1a = 0; // tlacitko1 rozepnuto
if (!tl2) tl2a = 0;
if (!tl3) tl3a = 0;
}

Datum
Vložil
Titulek

pomoc s časováním

Ahoj všem , řeším ted takový problém : ultrazvukovým senzorem měřím vzdálenost pokud dosáhnu nastavené vzdálenosti nebo menší tak se nastaví požadovaná rychlost a směr otáčení motorů , ale pokud vzdálenost stoupne tak se uplatňují jiné podmínky .
A já bych potřeboval mít možnost nastavit čas jak dlouho budou motory točit dle nastavení v této podmínce . a až po tomto čase se řídit dalšími podmínkami.
část kodu :
if (cmL <= vzdalenost_rev) {
L_sensorValue = (speed_rev1+512 );
R_sensorValue = (speed_rev2+512 );

Všem dík za případné rady .
Packa

Datum
Vložil
Titulek

I2C LCD 20/4

Ahoj akurat mi dorazilo arduino. potreboval by som poradit ked nahram uvodny kod pre lcd ,, tak lcd len raz blikne ale text nezobrazí

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4); // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
lcd.init(); // initialize the lcd

// Print a message to the LCD.
lcd.backlight();
lcd.print("Hello, world!");
}

void loop()
{
}

Datum
Vložil
Titulek

Re: I2C LCD 20/4

Jestli ti zrovna dorazilo arduino, začni napřed něčím jednodušším než LCD. Jinak to vypadá na špatný zapojení nebo vadný převodník mezi LCD a arduinem (taky se mi to stalo, ale to jsem omylem zkratoval nějaký piny)

Datum
Vložil
Titulek

programovaní

můžete mi někdo upravit tento kód a by otáčel taky servo při odemčení a zamčení děkuji mam arduino uno (je mi 11let)

#include <Keypad.h>

int LED_CLOSE = 11;
int LED_OPEN = 12;


const byte ROWS = 4;
const byte COLS = 3;


char pressedKey[5] = {'0','0','0','0'};
char code[5] = {'7','3','1','0'};


char hexaKeys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3};

customKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup(){
pinMode(LED_OPEN, OUTPUT);
pinMode(LED_CLOSE, OUTPUT);
digitalWrite(LED_CLOSE, HIGH);
}

void loop(){
char customKey = customKeypad.getKey();

if (customKey){
if (customKey == '#')
{
if ((pressedKey[0] == code[0]) && (pressedKey[1] == code[1]) && (pressedKey[2] == code[2]) && (pressedKey[3] == code[3]))
{

digitalWrite(LED_CLOSE, LOW);
digitalWrite(LED_OPEN, HIGH);
tone(10,2400,1200);
delay(6000);
digitalWrite(LED_OPEN, LOW);
digitalWrite(LED_CLOSE, HIGH);
tone(10,1900,1200);
pressedKey[0] = '0';
pressedKey[1] = '0';
pressedKey[2] = '0';
pressedKey[3] = '0';
}
else tone(10,500,1000);
}


else
{

pressedKey[0] = pressedKey[1];
pressedKey[1] = pressedKey[2];
pressedKey[2] = pressedKey[3];
pressedKey[3] = customKey;

tone(10,1200,80);
}
}
}

Záznamy: 91 - 120 ze 286

<< 2 | 3 | 4 | 5 | 6 >>

Vyhledávání

arduino8.cz © 2015 Všechna práva vyhrazena.