Radíme si navzájem
Datum | 23.06.2014 |
---|---|
Vložil | Admin |
Titulek | Re: Měřič Ah |
A už si na to přišel? Nemělo by to být složité, ale z programu nepoznám co chceš sčítat. Jinak když chceš k proměnné přičíst nějaké číslo tak je to :
proměnná = proměnná + 27;
———
Datum | 03.05.2014 |
---|---|
Vložil | karol |
Titulek | I2C RTC 1307 a MPU6050 |
Caute
Dnes som zistil ze na jednej adrese mam RTC1307 a MPU6050.Ide to niejak zmenit ta adresa?
———
Datum | 23.06.2014 |
---|---|
Vložil | Admin |
Titulek | Re: I2C RTC 1307 a MPU6050 |
U RTC DS1307 to nezměníš. Jde to pouze u MPU6050. Jediná změna jde pokud změníš logickou úrověň u 6050 na pinu 9. Nevím zda je na modulu zvlášť vyveden. Tady je vysvětlení z datasheetu:
The slave address of the MPU-60X0 is b110100X which is 7 bits long. The LSB bit of the 7 bit address is
determined by the logic level on pin AD0. This allows two MPU-60X0s to be connected to the same I2C bus.
When used in this configuration, the address of the one of the devices should be b1101000 (pin AD0 is logic
low) and the address of the other should be b1101001 (pin AD0 is logic high).
... to znamena pokud na pin 9 u obvodu MPU6050 přivedeš log.1 (high) bude I2C adresa 0x69 a ne 0x68 jako u RTC obvodu.
———
Datum | 27.04.2014 |
---|---|
Vložil | Mirek |
Titulek | Měření napětí |
Ahoj, potřebuji měřit napětí a to napětí potom zobrazovat na displeji 5110. Ovšem kod mi nefunguje, ukáže to jenom číslo 3, když to připojím na 3.3V. Nevíte kde mám chybu?
#include <Nokia5110.h>
LCDnokia5110 lcd(7,6,5,4,3);
int sensorValue = 0;
char data[5];
void setup(void)
{
lcd.LcdInitialise();
lcd.LcdClear();
}
void loop(void)
{
sensorValue = analogRead(A0);
float napeti = ((5.0/1023.0)*sensorValue);
lcd.GotoXY(0, 0);
lcd.LcdString("Napeti");
lcd.GotoXY(1,1);
lcd.LcdString(itoa(napeti, data, 10));
delay(20);
}
———
Datum | 06.05.2014 |
---|---|
Vložil | Dam |
Titulek | Re: Měření napětí |
Problém je určitě v použití funkce itoa, která pracuje jen s integerem, takže to desetinné číslo (napeti) zaokrouhli (nebo ořeže, teď nevím). Zkuste nahradit v kódu 5.0 hodnotou 50.0 - pak vám to bude ukazovat 33 (bez desetinné tečky). Nebo najít funkci, která převádí float na text - nevím jak se to dělá na Arduinu, protože s ním nepracuji.
———
Datum | 24.04.2014 |
---|---|
Vložil | Radek |
Titulek | HTML problém |
Dobrý den, mám problém s kódem chci ovládat výstupní piny přes web zatím ovládám pomocí HIGH a LOW, ale chtěl bych i PWM signál, ale zatím nevím jak :). No z5 k problému když napíšu obyčejné HTML a chci vycentrovat nadpisy, odkazy nebo cokoli na stránce tak na výstupu nemám hodnotu HIGH. Zjistil jsem že je to právě tím: <center> bla bla bal </center>, když to smažu tak to funguje jak má, vyzkoušel jsem smazat </center> a taky to funguje, ale není to ukončené, takže nemůžu tam v podstatě nic jiného přidat a umístit to např na levou stranu. Tady je ten kód(našel jsem ho tady https://internetofthings-pune.blogspot.cz/2013/07/this-is-open-source-home-automation.html a upravil si to) :
//for use with IDE 1.0
//open serial monitor to see what the arduino receives
//use the slash to escape the " in the html
//for use with W5100 based ethernet shields
// this project is hosted at
// https://code.google.com/p/arduino-autohome/
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x78, 0xE0 }; // <------- PUT YOUR MAC Address Here
byte ip[] = { 192, 168, 0, 20 }; // <------- PUT YOUR IP Address Here
byte gateway[] = { 192, 168, 1, 1 }; // <------- PUT YOUR ROUTERS IP Address to which your shield is connected Here
byte subnet[] = { 255, 255, 255, 0 }; // <------- It will be as it is in most of the cases
EthernetServer server(80); // <------- It's Defaulf Server Port for Ethernet Shield
String readString;
//////////////////////
void setup()
{
pinMode(6, OUTPUT); // Pin Assignment through which relay will be controlled
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
//start Ethernet
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
//enable serial data print
Serial.begin(9600);
Serial.println("server LED test 1.0"); // so that we can know what is getting loaded
}
void loop()
{
// Create a client connection
EthernetClient client = server.available();
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 100) {
//store characters to string
readString += c;
//Serial.print(c);
}
//if HTTP request has ended
if (c == 'n') {
///////////////
Serial.println(readString); //print to serial monitor for debuging
/* Start OF HTML Section. Here Keep everything as it is unless you understands its working */
client.println("HTTP/1.1 200 OK"); //send new page
client.println("Content-Type: text/html");
client.println();
//client.println("<meta http-equiv="refresh" content="5">");
client.println("<HTML>");
client.println("<HEAD>");
client.println("</HEAD>");
client.println("<body bgcolor="#99966">");
client.println("<hr>");
client.println("<hr>");
client.println("<h1><center>CONTROL</center></h1>");
client.println("<hr>");
client.println("<hr>");
client.println("<br />");
client.println("<br />");
client.println("Data ze analogoveho pinu A0: ");
client.println(analogRead(A0));
client.println("<br>");
client.println("Data ze analogoveho pinu A1: ");
client.println(analogRead(A1));
client.println("<br>");
client.println("Data ze analogoveho pinu A2: ");
client.println(analogRead(A2));
client.println("<br>");
client.println("Data ze analogoveho pinu A3: ");
client.println(analogRead(A3));
client.println("<br>");
client.println("Data ze analogoveho pinu A4: ");
client.println(analogRead(A4));
client.println("<br>");
client.println("Data ze analogoveho pinu A5: ");
client.println(analogRead(A5));
client.println("<br>");
// Relay Control Code
client.println("<center>");
client.println("<a href="/?relay1on"">Turn On Light 1</a>");
client.println("<a href="/?relay1off"">Turn Off Light 1</a><br />");
client.println("<br />");
client.println("<br />");
client.println("<a href="/?relay2on"">Turn On Light 2</a>");
client.println("<a href="/?relay2off"">Turn Off Light 2</a><br />");
client.println("<br />");
client.println("<br />");
client.println("<a href="/?relay3on"">Turn On Light 3</a>");
client.println("<a href="/?relay3off"">Turn Off Light 3</a><br />");
client.println("<br />");
client.println("<br />");
client.println("<a href="/?relay4on"">Turn On Light 4</a>");
client.println("<a href="/?relay4off"">Turn Off Light 4</a><br />");
client.println("<br />");
client.println("<br />");
client.println("<a href="/?relay5on"">Turn On Light 5</a>");
client.println("<a href="/?relay5off"">Turn Off Light 5</a><br />");
client.println("<br />");
client.println("<br />");
client.println("<a href="/?relay6on"">Turn On Light 6</a>");
client.println("<a href="/?relay6off"">Turn Off Light 6</a><br />");
client.println("<br />");
client.println("<br />");
client.println("<a href="/?relay7on"">Turn On Light 7</a>");
client.println("<a href="/?relay7off"">Turn Off Light 7</a><br />");
client.println("<br />");
client.println("<br />");
client.println("<a href="/?relay8on"">Turn On Light 8</a>");
client.println("<a href="/?relay8off"">Turn Off Light 8</a><br />");
client.println("<br />");
client.println("<br />");
client.println("</center>");
// control arduino pin via ethernet Start //
if(readString.indexOf("?relay1on") >0)//checks for on
{
digitalWrite(2, HIGH); // set pin 4 high
Serial.println("Led On");
//client.println("Light 0 Is On");
client.println("<br />");
}
else{
if(readString.indexOf("?relay1off") >0)//checks for off
{
digitalWrite(2, LOW); // set pin 4 low
Serial.println("Led Off");
//client.println("Light 0 Is Off");
client.println("<br />");
}
}
if(readString.indexOf("?relay2on") >0)//checks for on
{
digitalWrite(3, HIGH); // set pin 4 high
Serial.println("Led On");
//client.println("Light 0 Is On");
client.println("<br />");
}
else{
if(readString.indexOf("?relay2off") >0)//checks for off
{
digitalWrite(3, LOW); // set pin 4 low
Serial.println("Led Off");
//client.println("Light 0 Is Off");
client.println("<br />");
}
}
if(readString.indexOf("?relay3on") >0)//checks for on
{
digitalWrite(4, HIGH); // set pin 4 high
Serial.println("Led On");
//client.println("Light 0 Is On");
client.println("<br />");
}
else{
if(readString.indexOf("?relay3off") >0)//checks for off
{
digitalWrite(4, LOW); // set pin 4 low
Serial.println("Led Off");
//client.println("Light 0 Is Off");
client.println("<br />");
}
}
if(readString.indexOf("?relay4on") >0)//checks for on
{
digitalWrite(5, HIGH); // set pin 4 high
Serial.println("Led On");
//client.println("Light 0 Is On");
client.println("<br />");
}
else{
if(readString.indexOf("?relay4off") >0)//checks for off
{
digitalWrite(5, LOW); // set pin 4 low
Serial.println("Led Off");
//client.println("Light 0 Is Off");
client.println("<br />");
}
}
if(readString.indexOf("?relay5on") >0)//checks for on
{
digitalWrite(6, HIGH); // set pin 4 high
Serial.println("Led On");
//client.println("Light 1 Is On");
client.println("<br />");
}
else{
if(readString.indexOf("?relay5off") >0)//checks for off
{
digitalWrite(6, LOW); // set pin 4 low
Serial.println("Led Off");
//client.println("Light 1 Is Off");
client.println("<br />");
}
}
if(readString.indexOf("?relay6on") >0)//checks for on
{
digitalWrite(7, HIGH); // set pin 4 high
Serial.println("Led On");
//client.println("Light 2 Is On");
client.println("<br />");
}
else{
if(readString.indexOf("?relay6off") >0)//checks for off
{
digitalWrite(7, LOW); // set pin 4 low
Serial.println("Led Off");
//client.println("Light 2 Is Off");
client.println("<br />");
}
}
if(readString.indexOf("?relay7on") >0)//checks for on
{
digitalWrite(8, HIGH); // set pin 4 high
Serial.println("Led On");
// client.println("Light 3 Is On");
client.println("<br />");
}
else{
if(readString.indexOf("?relay7off") >0)//checks for off
{
digitalWrite(8, LOW); // set pin 4 low
Serial.println("Led Off");
//client.println("Light 3 Is Off");
client.println("<br />");
}
}
if(readString.indexOf("?relay8on") >0)//checks for on
{
digitalWrite(9, HIGH); // set pin 4 high
Serial.println("Led On");
//client.println("Light 4 Is On");
client.println("<br />");
}
else{
if(readString.indexOf("?relay8off") >0)//checks for off
{
digitalWrite(9, LOW); // set pin 4 low
Serial.println("Led Off");
//client.println("Light 4 Is Off");
client.println("<br />");
}
}
// control arduino pin via ethernet End //
//clearing string for next read
readString="";
client.println("</body>");
client.println("</HTML>");
delay(1);
//stopping client
client.stop();
}
}
}
}
———
Datum | 13.04.2014 |
---|---|
Vložil | Honza |
Titulek | Ethernet Shield |
Zdrávím všechny příznivce Arduina prosím o radu. Doma mi jede na Arduinu UNO s ethernet shieldem meteostanice. Naměřený data se mi zobrazují na WEBserveru z tutoriálu z těchto stránek, které dále zpracovávám. Chtěl bych se zeptat, jestli někdo neví, jakým způsobem naměřená data z WEB serveru zobrazovat na druhém Arduinu s ethernet shieldem na LCD?
Předem díky za rady a tipy.
———
Datum | 23.06.2014 |
---|---|
Vložil | Admin |
Titulek | Re: Ethernet Shield |
No to je taková chuťovka. Na webu by se museli udělat speciální stránky pro tvé arduino. POuze tedy jednoduché data který by Arduino přečetlo a nějakým způsobem zobrazilo. Stačilo by třeba kdyby server nazpět zaslal třeba několik čísel i bez html hlavičky
———
Datum | 13.04.2014 |
---|---|
Vložil | Daniel |
Titulek | Klon |
Dobrý den. Potřebuji se ještě zeptat, koukal jsem na ta arduina , tak ty klony jsou o dost levnější. Neví o co jde, ale není to od klasického arduina nějak ošizené?
———
Datum | 14.04.2014 |
---|---|
Vložil | kenavf |
Titulek | Re: Klon |
Mám klon Arduino Uno z Číny.Žiadny funkčný problém som nezistil.Len spotrebu som nameral( pri 9V baterii) bol prúd 47mA.Ostatní u Arduina,asi originálneho,uvádzajú prúd 25mA.
———
Datum | 14.04.2014 |
---|---|
Vložil | Honza |
Titulek | Re: Klon |
Mám také klon z Číny a zatím žádný problém nepozorován. Odběr s podsvětleným LCD kolem 70mA a s Ethernet Shieldem 200mA.
———
Datum | 12.05.2014 |
---|---|
Vložil | pepa |
Titulek | Re: Klon |
Ja mam taky klon Arduino Mega 2560 z číny (banggood.com) za 297,-Kč a funguje bez problémů.
———
Datum | 08.04.2014 |
---|---|
Vložil | JOSEF |
Titulek | Jak měnit názvy tlačítek |
Ahoj,
Mám problém. V knihovně UTFT_Buttons.h se nechají vykreslovat tlačítka použitím příkazu
but1 = myButtons.addButton(10, 20, 300,30, "nápis");
Potřeboval bych nápis měnit. Zkoušel jsem :
String text="nový nápis";
but1 = myButtons.addButton( 10, 20, 300, 30, text);
ale nevzalo mi to.
Lze to nějak provést?
Díky za odpovědi...
———
Datum | 09.04.2014 |
---|---|
Vložil | Dreamer |
Titulek | Re: Jak měnit názvy tlačítek |
Zkoušel jsi po každé změně Buttons nechat vykreslit? Díval jsem se na Arduino fórum a tam je v příkladu uveden po nadefinování Buttons ještě příkaz: myButtons.drawButtons();
———
Datum | 10.04.2014 |
---|---|
Vložil | JOSEF |
Titulek | Re: Re: Jak měnit názvy tlačítek |
Já mám problém v tom, že mě to hlásí rovnou chybu. Zadám
String text="nový nápis";
but1 = myButtons.addButton( 10, 20, 300, 30, text);
...a nahlásí to chybu
error: no matching function for call to 'UTFT_Buttons::addButton(int, int, int, int, String&)'
Někde mám něco špatně...
———
Datum | 10.04.2014 |
---|---|
Vložil | Dreamer |
Titulek | Re: Re: Re: Jak měnit názvy tlačítek |
Asi by bylo lepší dát sem alespoň část programu. Příkazem String text="nový nápis" deklaruješ proměnou text a přiřadíš jí hodnotu "nový nápis" když ji chceš změnit musíš použít jen text="nový nápis2" třeba.
———
Datum | 11.04.2014 |
---|---|
Vložil | Josef |
Titulek | Re: Re: Re: Re: Jak měnit názvy tlačítek |
Program nemám, zatím jsem řešil, co knihovna "umí". Chtěl jsem např. měřit napětí na pinu a to zobrazovat na tlačítku. Zaráží mě, že když deklaruji proměnnou na txt.řetězec a chci ji pak použít místo nápisu na tlačítku, tak mě to nahlásí chybu. Dělám něco špatně, logicky by to mělo jít, ne... ? Pokud máš nějaký nápad, dej vědět... A dík :)
———
Datum | 07.04.2014 |
---|---|
Vložil | Daniel |
Titulek | Železnice |
Ahoj.
Už nějakou dobu se koukám na arduino a napadlo mě ovládat přes něj své modelové kolejiště ( stavění vlakové cesty, lokomotivy zatím ne :) ) potřebuji se ale zeptat, zda po připojení k pc, nebo přes net ( s internet shieldem) , bych mohl pomocí programu v pc ovládat jednotlivé vstupy a výstupy arduina?
Předem děkuji
———
Datum | 08.04.2014 |
---|---|
Vložil | Alda |
Titulek | Re: Železnice |
Jasně, právě tohle je jeden z důvodů, proč jsem s Arduinem začal. Z PC se dostaneš k výstupů a jejich ovládání velice snadno.
———
Datum | 08.04.2014 |
---|---|
Vložil | Daniel |
Titulek | Re: Re: Železnice |
fakt? tak to se mi zvedla chut si to pořídit :) mám právě v plánu si graficky zpracovat kolejiště na PC a po kliku na příslušnou kolej v programu si piny z arduina budou spínat relé od výhybek. děkuji moc :)
———
Datum | 08.04.2014 |
---|---|
Vložil | Daniel |
Titulek | Re: Re: Železnice |
ještě bych se ale potřeboval zeptat, zda by pro začátek stačilo UNO. vím že je méně pinů, což by ale zpočátku stačilo, ale jestli jsou i jiné rozdíli od MEGY co se týče max zátěže, či ovládání
———
Datum | 09.04.2014 |
---|---|
Vložil | alda |
Titulek | Re: Re: Re: Železnice |
osobne jsem radeji hned volil MEGA, protoze ma prave vice vystupu a taky 4 seriove linky. Rozdil v cene je cca 150 kc takze pohoda. Nebudu davat reklamu, ale vyberes si urcite v eshopu "Santy".
———
Datum | 12.04.2014 |
---|---|
Vložil | Daniel |
Titulek | Re: Re: Re: Re: Železnice |
Dobře, děkuji za vše. Koukal jsem ted ale na stránky santy, a u arduina je psáno ¨klon¨ ... není to nějak ochuzené od pravého arduina?
———
Datum | 13.04.2014 |
---|---|
Vložil | alda |
Titulek | Re: Re: Re: Re: Re: Železnice |
taky mám klon, jde o to, že je to podstatně lepvnější a přitom úplně stejné jako originál, občas i výhodně obohacené o další piny. Není se čeho bát.
———
Datum | 13.04.2014 |
---|---|
Vložil | Daniel |
Titulek | Re: Re: Re: Re: Re: Re: Železnice |
Oki. Díky za vše :)
———
Datum | 31.03.2014 |
---|---|
Vložil | Dejv |
Titulek | analogový vstup |
Dobrý den, mám rduino Mega 2560 i s ethernet shieldem a potřeboval bych co nejpřesněji měřit napětí. Bohužel i když mám proměnou hodnotu na 0 a nic není k analogovému pinu připojeno, tak tam mám stále nejaké vysoké hodnoty. Předem děkuji za rady.
———
Datum | 31.03.2014 |
---|---|
Vložil | Daew |
Titulek | Re: analogový vstup |
Protože když na pinu nic není připojeno, tak je tam naindukované (šum) to cosi, co to ukazuje. Připoj ten pin skutečně na nulu (uzemni ho) a bude to ukazovat 0.
———
Datum | 26.03.2014 |
---|---|
Vložil | Setros |
Titulek | Arduino a Modbus |
Ahoj,
Potřeboval bych poradit s jedním problémem. Hraju si s Arduinem (UNO) a Modbus protokolem a narazil jsem na jeden problém. Na Arduinu mám připojenou maticovou klávesnici a když zmáčknu klávesu, tak bych potřeboval zapsat log. 1 do určitého registru Modbusu. Což není problém, ale já bych potřeboval, aby ta log. 1 tam byla jen po určitou dobu, např. 500 ms a poté se ten registr vrátil zpět na log. 0, protože nadřazený Master reaguje pouze na příchozí log.1 (vzestupná hrana). Když jsem to testoval pouze připojení log.1 na digitální vstup (pouze na malou chvilku) , tak to fungovalo jak mělo, ale s klávesnicí mi to nejde.
Jen pro doplnění, Arduino připojuji k programu Mach3 pro CNC zařízení a rád bych si vyrobil externí ovládání.
Zde je můj testovací kód:
#include <SimpleModbusSlave.h>
#include <Keypad.h>
const byte ROWS = 4; // 4 řádky
const byte COLS = 4; // 4 sloupce
char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //čísla pinů s řadkem 1 2 3 4
byte colPins[COLS] = {5, 4, 3, 2}; //čísla pinu se sloupcem 1 2 3 4
//inicializuje klávesnice customKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
enum
{
RESET,
START,
STOP,
PAUSA,
OSAX,
HOME,
JOGPLUS,
FRPLUS,
OSAY,
ZEROZ,
JOGMINUS,
FRMINUS,
OSAZ,
ZEROALL,
SPINDLE,
KROK,
HOLDING_REGS_SIZE
};
unsigned int holdingRegs[HOLDING_REGS_SIZE];
void setup()
{
modbus_configure(&Serial, 9600, SERIAL_8N2, 2, 2, HOLDING_REGS_SIZE, holdingRegs);
}
void loop()
{
modbus_update();
char customKey = customKeypad.getKey();
switch(customKey){
case '1': // RESET
/* if (holdingRegs[RESET]) holdingRegs[RESET] = LOW;
else holdingRegs[RESET] = HIGH;
tak mi to jde také, ale musím pokaždé mačkat klávesu dvakrát
tz. Když chci RESET zapnout, zmáčknu tlačítko a reset se aktivuje
a když ho chci vypnout, musím zmáčknou ještě jednou,
abych registr vynulovat a mohl poslat novou log. 1 pro deaktivaci.*/
break;
case '2': // START
break;
case '3': // STOP
break;
default:
break;
}
}
———
Datum | 25.03.2014 |
---|---|
Vložil | PEPE |
Titulek | jak zjistit zda je rozsvícen pixel na displeji |
Ahoj, mám Arduino Mega2560 s 3.2 TFT touch displejem. Rád bych se optal, zda existuje nějaká knihovna, která by umožnila zjistit, je-li na urřitých souřadnicích rozsvícen pixel, pčípadně jakou má barvu. V knihovnách co jsem našel lze pouze kreslit body, čáry... Děkuji, přeji pěkný den
———
Datum | 22.03.2014 |
---|---|
Vložil | Matěj |
Titulek | Jak začít |
Zdravím všechny.
Arduino mám teprve pár dní a moc mi to nejde. Chtěl bych se zeptat jestli neznáte někdo nějaký WEB nebo soubor kde je přesný technologický postup jak napsat program na arduino.
Předem moc děkuji