Radíme si navzájem

Datum
Vložil
Titulek

Znáte?

Znáte nějaký zajímavý kód na arduino s ethernetem? Dík.

Datum
Vložil
Titulek

Re: Znáte?

Zdejší tutorialy jsou málo zajímavé?
Myslím tím třeba lekci 15 - Arduino jako Web Server nebo lekci 16 - Arduino jako Web Client. Nevím jak zkušený jsi programátor a bastlíř, ale než vyvineš a odladíš spolehlivou aplikaci s ethernetem, která má fungovat v nonstop režimu 24h x 365dnů, tak tě možná trochu přejde chuť vymýšlet v tom ještě nějaké "zajímavosti". Já myslím, že bohatě stačí začít s venkovním teploměrem a ukládat data na nějaký web server ;-)

Datum
Vložil
Titulek

Re: Re: Znáte?

Tak. Dík. (-§

Datum
Vložil
Titulek

Re: Re: Re: Znáte?

Nemyslel jsem to jízlivě. Jenom mluvím z vlastní zkušenosti. Pokud si řekneš např., že by jsi chtěl mít některé věci doma připojené k síti a ovládat je po internetu, tak budeš řešit cenu. Pak ti vyjde asi nejlevněji koupit na ebay nějaké arduino mini nebo nano s 32kB flash a k tomu ethernet modul ENC28J60. U toho ethernetu doporučuju koupit si variantu s vestavěným stabilizátorem, aby jsi to mohl napájet 5V. Vlastní čip je totiž na 3.3V . No a tak máš k dispozici atmela s 32 kB flash paměti. Pro čip ENC28J60 je výborná arduino knihovna UIPEthernet, kterou stvořil Norbert Truchsess. Takže vezmeš tuto knihovnu, necháš si zapnuté DHCP, protože to je "jednodušší" a začneš pokusovat. No a najednou přijde šok. Zjistíš, že když chceš jenom rozsvítit ledku po ethernetu, tak se ti už program nevejde do flash pamětu atmela! Takže vypneš DHCP a nastavíš si pevnou IP adresu. Pak už ti konečně zbyde i trochu místa na kus programu, který by mohl něco užitečného dělat. Ok, další pokus. Chvíli to vypadá, že to i funguje, ale pak to zamrzne. Pátráš a zkoušíš hodinu, dvě, den, několik dnů... Pak zjistíš, že po přeložení programu musí zbývat určité minimální množství volné SRAM v procesoru. Řekněme 500 bajtů. To znamená kompletní refaktoring kódu a minimalizaci množství a velikosti proměnných. Takže máme řekněme dva týdny až měsíc pokusů pryč, ale když se to povede, tak svítá naděje na lepší zítřky. Stále však budeš svádět boj s malou flash pamětí, což se dozvíš ihned při překladu v IDE a bohužel také s malou SRAM, což se zpravidla projevuje až za chodu programu, který zamrzá a nebo dělá nepředvídatelná zvěrstva. Další krok tedy bude vypnutí UDP protokolu. Tím ušetříš cca 5kB flash, což je sakra znát. Takže teď už můžeš svůj program na rozsvícení ledky upravit, aby šla také zhasnout. No a až to všechno odladíš, tak budeš chtít přidat ještě jednu led a opět nastane začarovaný kruh s malou pamětí, takže vezmeš externí programátor, vymažeš s čipu bootloader a začneš jej krmit jenom pomocí USB programátoru, aby jsi využil 2kB, které zabíral bootloader.
Ale většinu lidí to tak dlouho nebaví, takže to celé mrsknou do šuflíku ;-)

Samozřejmě existuje také možnost použít arduino mega 2560 a k němu ethernet shield s čipem W5100, ale to se dostaneš finančně do úplně jiného levelu. Při nákupu v čechách ti ze dvou tisíc Kč moc nezbude a to asi nebude ta správná cesta, jak si doma zavést "internet věcí" pro 10 žárovek.

Takže tím jsem jenom chtěl říci, že rozhodně nechci nikoho podceňovat nebo odrazovat, ale upozorňuji na možná přehnaná očekávání při vývoji arduino ethernet projektů ;-)

Datum
Vložil
Titulek

Rozložení čísla

Zdravím,
nevím jestli se to tu už někde zmiňovalo nebo jestli to vůbec jde, ale mám číslo např. 562 a tohle číslo bych chtěl rozložit a jednotlivé čísla a přiřadit k písmenům např. x,q,y , takže by to vypadalo takto:
x = 5; q = 6; y = 2;
Vždycky by se tohle trojčíslí nebo dvojčísli takto rozložilo. Předem děkuji za odpověď.

Datum
Vložil
Titulek

Re: Rozložení čísla

Nemam cas pisat tu programa ale aspon ta navediem

original cislo vydel 10 a vloz ho do premennej typu int kde sa ulozi cele cislo potom toto cislo vynasom 10 a odcitaj od povodneho cisla. Dostanes cislo na pozicii jednotiek a tak dalej pre kolko cislic chces

Datum
Vložil
Titulek

Re: Re: Rozložení čísla

Ano, děkuji, už jsem pochcopil jak jse to dá udělat a kod už funguje, ale děkuji za odpověď.

Datum
Vložil
Titulek

Re: Re: Re: Rozložení čísla

Že ty chceš zobrazovat teplotu nebo něco podobného na LED sedmisegmentovkách?
;-)

Datum
Vložil
Titulek

Re: Re: Re: Re: Rozložení čísla

Přesně tak. :-D

Datum
Vložil
Titulek

aktivní všechny body na displeji Nokia 5110

Ahoj,
asi jsem si na začátek ukousl větší sousto. Arduino je pro mě zatím velká neznámá, ale říkal jsem si, že když to chodilo autorovi, že na tom nic nebude. Chtěl jsem si k fotoaparátu postavit "chytrou" krabičku na řízení expozice. Našel jsem zapojení i s programem na http://www.vwlowen.co.uk/arduino/camera/page6.htm
Po velkém boji s knihovnami se po zkompilování na displeji rozsvítí všechny body a nic dalšího se nekoná nebo není přes takhle aktivovaný displej vidět. Zkoušel jsem všechny možné knihovny a nic. Věci na finální stavbu mám nakoupené a docela by mě mrzelo, nechat je v šuplíku ležet.
Nemohla by se nějaká dobrá duše podívat v čem je chyba?
Děkuji

Datum
Vložil
Titulek

Re: aktivní všechny body na displeji Nokia 5110

Na ake účely by mala tá krabička slúžiť? Mám momentálne rozrobené niečo na vysokorýchlostnú fotogratiu.

Datum
Vložil
Titulek

Re: Re: aktivní všechny body na displeji Nokia 5110

Chybu v programu jsem před chvílí objevil. Byla tam nastavená příliš velká hodnota kontrastu při čtení z paměti.

Ano, je to i na vysokorychlostní foto. Mělo by to umět i časosběrné foto a synchronizaci externího blesku. Mám postavenou ještě jinou krabku, asi je i chytřejší, ale hůř se nastavuje protože nemá displej.

Datum
Vložil
Titulek

Re: Re: Re: aktivní všechny body na displeji Nokia 5110

Jo, ty Nokia displeje mají fakt pěkný a velký kontrast. Holt to bylo vyvinuto pro praktický telefon a ne jako levné spotřební pozlátko :-)

Datum
Vložil
Titulek

Re: Re: Re: aktivní všechny body na displeji Nokia 5110

Nejaký e mail na seba by si poslal? pripravujem sa na vysokorýchlostné foto a každá rada či konzultácie je dobra.

Datum
Vložil
Titulek

Re: Re: Re: Re: aktivní všechny body na displeji Nokia 5110

moja adresa nasosak/zavinac/vyhladavacov mail ci g...

Datum
Vložil
Titulek

Re: Re: Re: Re: Re: aktivní všechny body na displeji Nokia 5110

I já s touhle fotografii teprve začínám, tak ti moc neporadím. Navíc z té adresy moc moudrý nejdem.

Datum
Vložil
Titulek

Re: Re: Re: Re: Re: Re: aktivní všechny body na displeji Nokia 5110

Ja začínam s fotografiou a aj s Arduinom. Adresa je jednoducha ale pre sťaženie práce spamovacím robotom ju napíšem ináč nasosak je pred zavináčom za zavináčom je gmail

Datum
Vložil
Titulek

Začátečník

Ahoj potřeboval bych poradit.Mám ARDUINO UNO teplotní čidlo DS18B20 a mám i složku. Zkopíroval jsem si tento program. Bohužel se mi to nechce nahrát.Můžete mi upravit tento program tak aby šel nahrát. Předem moc děkuji jsem začátečník.

Arduino Code:

#include <Servo.h> // Servo header file is needed to control the servo motor.
Servo servo1; // Create servo object to allow us to control the servo motor.

float tempC; // create variable to store the temperature in.
int tempPin = 0; // Attach vout to analog pin 0.
int led = 13; // attach led to pin 13.
int fan1 = 3; // attach base of transistor to digital pin 3.
int pos = 0; // create variable to store the position of the servo motor.

void setup() // Will execute once at the start of the code.
{
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
pinMode (led, OUTPUT); // sets the led pin 13 up as an output.
pinMode (fan1, OUTPUT); // sets the fan1 pin 3 up as an output.
servo1.attach(5); // attaches the servo motor to digital pin 5.
}

void loop() // code here will continue to replay nutil powered off.
{
tempC = analogRead(tempPin); // read the analog value from the lm35 sensor.
tempC = (5.0 * tempC * 100.0)/1024.0; // convert the analog input to temperature in centigrade.
Serial.print((byte)tempC); // send the data to the computer.

if (tempC > 24) // creates bool expression for analyzation. if it evaluates to true,
{ // the body of the if statement will execute.
pos = 180; // sets pos equal to 180.
digitalWrite (led, HIGH); // turns on led.
digitalWrite (fan1, HIGH); // turns on fan1.
servo1.write(pos); // turns servo to 180 degrees.
}
else // if the if equation evaluates to false the else statement will execute.
{
pos = 90; // sets pos equal to 90.
digitalWrite (led, LOW); // turns off led.
digitalWrite (fan1, LOW); // turns off fan1.
servo1.write(pos); // turns servo to 90 degrees.
}
delay(3000); // wait 3 seconds before redoing the loop.
}



Processing Code:

//import Serial communication library
import processing.serial.*;

//init variables
Serial commPort;
float tempC;
float tempF;
int yDist;
PFont font12;
PFont font24;
float[] tempHistory = new float[100];

void setup()
{
//setup fonts for use throughout the application
font12 = loadFont("Verdana-12.vlw");
font24 = loadFont("Verdana-24.vlw");

//set the size of the window
size(210, 200);

//init serial communication port
commPort = new Serial(this, "COM5", 9600);

//fill tempHistory with default temps
for(int index = 0; index<100; index++)
tempHistory[index] = 0;
}

void draw()
{
//get the temp from the serial port
while (commPort.available() > 0)
{
tempC = commPort.read();

//refresh the background to clear old data
background(123);

//draw the temp rectangle
colorMode(RGB, 160); //use color mode sized for fading
stroke (0);
rect (49,19,22,162);
//fade red and blue within the rectangle
for (int colorIndex = 0; colorIndex <= 160; colorIndex++)
{
stroke(160 - colorIndex, 0, colorIndex);
line(50, colorIndex + 20, 70, colorIndex + 20);
}

//draw graph
stroke(0);
fill(255,255,255);
rect(90,80,100,100);
for (int index = 0; index<100; index++)
{
if(index == 99)
tempHistory[index] = tempC;
else
tempHistory[index] = tempHistory[index + 1];
point(90 + index, 180 - tempHistory[index]);
}

//write reference values
fill(0,0,0);
textFont(font12);
textAlign(RIGHT);
text("212 F", 45, 25);
text("32 F", 45, 187);

//draw triangle pointer
yDist = int(160 - (160 * (tempC * 0.01)));
stroke(0);
triangle(75, yDist + 20, 85, yDist + 15, 85, yDist + 25);

//write the temp in C and F
fill(0,0,0);
textFont(font24);
textAlign(LEFT);
tempC = 5*tempC*100/1024;
text(str(int(tempC)) + " C", 115, 37);
text(str(int(tempC*1.8+32)) + " F", 115, 65);
}
}

Datum
Vložil
Titulek

Re: Začátečník

Já se v tom tak nějak extra nevyznám, ale řekl bych, že toto by mělo být takhle.
if(index == 99){
tempHistory[index] = tempC;}
else{
tempHistory[index] = tempHistory[index + 1];
point(90 + index, 180 - tempHistory[index]);
}

Datum
Vložil
Titulek

Re: Začátečník

Víš o tom, že od řádku
Processing Code:
je to zdroják určený pro program Processing a ne pro arduino?

Datum
Vložil
Titulek

LCD 2,2" s řadiče ILI9225

Ahoj, teprve s arduinem začínám, ale jž jsem si koupil k mému arduinu Pro Micro (Leonardo) barevný LCD displej. Stáhnul jsem si potřebnou knihovnu pro ovládání displeje a ukázkový program. Přepsal piny, aby mi to teda jelo přes SPI a už jsem schopen si sám tvořit grafiku, ALE. Nevim proč, ale grafika se mi displej renderuje velmi pomalu, cca 1s trvá, než se překreslí celá plocha displeje. Přikládám začátek originálního a mého-upraveného kódu.
Děkuji moc všem kdo pomohou

#include "SPI.h"
#include "TFT_22_ILI9225.h"

#define TFT_RST 8
#define TFT_RS 9
#define TFT_CS 10 // SS
#define TFT_SDI 11 // MOSI
#define TFT_CLK 13 // SCK
#define TFT_LED 3 // 0 if wired to +5V directly

// Use hardware SPI (faster - on Uno: 13-SCK, 12-MISO, 11-MOSI)
TFT_22_ILI9225 tft = TFT_22_ILI9225(TFT_RST, TFT_RS, TFT_CS, TFT_LED);
// Use software SPI (slower)
//TFT_22_ILI9225 tft = TFT_22_ILI9225(TFT_RST, TFT_RS, TFT_CS, TFT_SDI, TFT_CLK, TFT_LED);

// Variables and constants
uint16_t x, y;
boolean flag = false;

// Setup
void setup() {
tft.begin();
Serial.begin(9600);
}

--------------------------------------------------------------------------
#include "SPI.h"
#include "TFT_22_ILI9225.h"

#define TFT_RST 8 //+ ----
#define TFT_RS 10 //+ -pwm (9)
#define TFT_CS 9 //+ SS-pwm (10)
#define TFT_SDI 11 //+ -MOSI
#define TFT_CLK 13 //+ -SCK
#define TFT_LED 3 // 0 if wired to +5V directly-pwm

// LCD display - 176x220 px

TFT_22_ILI9225 tft = TFT_22_ILI9225(TFT_RST, TFT_RS, TFT_CS, TFT_LED);
//TFT_22_ILI9225 tft = TFT_22_ILI9225(TFT_RST, TFT_RS, TFT_CS, TFT_SDI, TFT_CLK, TFT_LED);


// Variables and constants
uint16_t x, y;
boolean flag = false;


// SETUP
void setup() {
tft.begin();
Serial.begin(9600);
}

Datum
Vložil
Titulek

Re: LCD 2,2" s řadiče ILI9225

Obávám se, že jsi měl špatná očekávání. Necelá jedna vteřina na překreslení 2.2" TFT displeje pomocí SPI rozhraní je pěkný čas a odpovídá použítí HW pinů SPI. Pokud by jsi použil softwerové SPI, mohl by jsi sice zvolit libovolné piny, ale než by se namalovala obrazovka, bylo by to na uvaření kávy. Zkus si pomoci malým podvodem a sice při aktualizaci něčeho na LCD, např. čísla s teplotou, toto nejdříve "vymaž" tak, že to přepíšeš barvou pozadí a pak teprve nastav barvu požadovaného čísla a vykresli novou hodnotu. Je to sice trochu nepohodlné, ale mnohem rychlejší než překreslovat celé TFT LCD ;-)

Datum
Vložil
Titulek

MPU-6050

Prosím potřeboval bych poradit s čidlem MPU-6050.
Pohyb je jen v jedné ose.
Čidlo se může naklánět ze strany na stranu v povolené míře, když
tuhle míru překročí rozsvítí se LED dioda.
Moc děkuji za odpověď.

Datum
Vložil
Titulek

Re: MPU-6050

Třeba si z toho něco vybereš.
// ALARM - odeslani SMS
#include "Wire.h"
#include "Math.h"
#include "I2Cdev.h"
#include "MPU6050.h"
#include <LiquidCrystal.h> // import knihovny DISPLEJE
LiquidCrystal lcd (12, 13, 8, 9, 10, 11); // piny displeje UNO - RS, E, D4, D5, D6, D7
// LiquidCrystal lcd (51, 53, 48, 50, 52, 49); // piny displeje MEGA -
#define napajeni1 2 // napajeni UGM1
#define vstup1 3 // vstup UGM1 negovany

// vytvoříme objekt s názvem
MPU6050 akcelerometr;

const float pi = 3.141592;
const int pocet_vzorku = 10; // pocet vzorku mereni pro vyhodnoceni
// pojmenovani promenych
int ax, ay, az;
float x, y, z;
int pocet;
float _angle_x, angle_x, _angle_y, angle_y;
long ax_p, ay_p, az_p;
float pamet_x, pamet_y; // pamet pocatecni polohy
float pom1f;
int pom1i, pom2i;

void setup()
{
lcd.begin(16,4); // parametry displeje
// inicializace I2C
Wire.begin();
// zvolime vyssi rychlost pro seriovy port
Serial.begin(38400);
// inicializace akcelerometru
akcelerometr.initialize();
// Kdyz to hodi chybu vypiseme hlasku
if (akcelerometr.testConnection());
Serial.println("Spojeni OK...");
pinMode(napajeni1,OUTPUT); // napajeni UGM1
pinMode(vstup1,OUTPUT); // vstup do UGM1
digitalWrite(napajeni1,0); digitalWrite(vstup1,0);
delay(10000);
zjistiSklonNaklon();
pamet_x = angle_x;
pamet_y = angle_y;
}

void loop()
{
zjistiSklonNaklon();
displej1();
pom1f = abs(pamet_x - angle_x);
if (pom1f > 2 ) // hranice prekroceni
digitalWrite(napajeni1,1);

pom1f = abs(pamet_y - angle_y);
if (pom1f > 2 ) // hranice prekroceni
digitalWrite(napajeni1,1);

if (digitalRead(napajeni1))
{
udalost1();
// delay(1000);
zjistiSklonNaklon();
pamet_x = angle_x;
pamet_y = angle_y;
}
}

void displej1()
{
lcd.clear();
lcd.setCursor(0, 0); lcd.print(" X = "); lcd.print(angle_x);
lcd.setCursor(0, 1); lcd.print(" Y = "); lcd.print(angle_y);
}

void zjistiSklonNaklon()
{
// zjisti vsechny hodnoty z akcelerometru
akcelerometr.getAcceleration(&ax, &ay, &az);
pocet = 0;
ax_p = 0;
ay_p = 0;
az_p = 0;
{
ax_p = ax_p + ax;
ay_p = ay_p + ay;
az_p = az_p + az;
pocet++; // scitame pocet vzorku
}
while(pocet > pocet_vzorku);

// zjistime prumerne hodnoty
x = ax_p/pocet_vzorku;
y = ay_p/pocet_vzorku;
z = az_p/pocet_vzorku;
// vypočteme sklon a náklon
angle_x = atan2(x, sqrt(square(y) + square(z)) )/(pi/180);
angle_y = atan2(y, sqrt(square(x) + square(z)) )/(pi/180);
}

void udalost1()
{
delay(20000); // pro prihlaseni UGM do site
digitalWrite(vstup1,1); // zmena vstupu UGM1 pro odeslani SMS
delay(2000);
digitalWrite(vstup1,0);
delay(20000);
digitalWrite(napajeni1,0); // nevypinat napajeni pokud ma byt zameritelne
}

Datum
Vložil
Titulek

Re: Re: MPU-6050

Pokud nebude mět být vypínat napájení je třeba upravit ( ne jen smazat).

Datum
Vložil
Titulek

Smíchání kódů

Dobrý den, potřeboval bych aby se mi ukazoval status tlačítka a abych mohl nastavovat servo. Zde je nastavovaní serva a po něm je status tlačítka.

#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h>
Servo myservo; // create servo object to control a servo


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 0, 14 }; // ip in lan
byte gateway[] = { 192, 168, 0, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
String readString;

//////////////////////

void setup(){

pinMode(5, OUTPUT); //pin selected to control
myservo.attach(7); //the pin for the servo control
//start Ethernet
Ethernet.begin(mac, ip);
server.begin();

//enable serial data print
Serial.begin(9600);
Serial.println("server servo/pin 5 test 1.0"); // so I can keep track of what is loaded
}

void loop(){
// Create a client connection
EthernetClient client = server.available();
if (client) {
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

client.println("HTTP/1.1 200 OK"); //send new page
client.println("Content-Type: text/html");
client.println();

client.println("<HTML>");
client.println("<HEAD>");
client.println("<TITLE>Arduino Servo WEB</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");

client.println("<H1>Link para controlar un servo</H1>");

client.println("<a href=\"/?on\"\">IZQUIERDA</a>");
client.println("<a href=\"/?off\"\">DERECHA</a>");

client.println("</BODY>");
client.println("</HTML>");

delay(1);
//stopping client
client.stop();

///////////////////// control arduino pin
if(readString.indexOf("?on") >0)//checks for on
{
myservo.write(10);
digitalWrite(5, HIGH); // set pin 4 high
Serial.println("Led On");
}
if(readString.indexOf("?off") >0)//checks for off
{
myservo.write(110);
digitalWrite(5, LOW); // set pin 4 low
Serial.println("Led Off");
}
//clearing string for next read
readString="";

}
}
}
}
}

#include <SPI.h>
#include <Ethernet.h>

// MAC address from Ethernet shield sticker under board
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 0, 22); // IP address, may need to change depending on network
EthernetServer server(80); // create a server at port 80

String HTTP_req; // stores the HTTP request

void setup()
{
Ethernet.begin(mac, ip); // initialize Ethernet device
server.begin(); // start to listen for clients
Serial.begin(9600); // for diagnostics
pinMode(3, INPUT); // switch is attached to Arduino pin 3
}

void loop()
{
EthernetClient client = server.available(); // try to get client

if (client) { // got client?
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) { // client data available to read
char c = client.read(); // read 1 byte (character) from client
HTTP_req += c; // save the HTTP request 1 char at a time
// last line of client request is blank and ends with \n
// respond to client only after last line received
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: keep-alive");
client.println();

if (HTTP_req.indexOf("ajax_switch") > -1) {

}
else {
client.println("<!DOCTYPE html>");
client.println("<html>");
client.println("<head>");
client.println("<title>Arduino,zamek.</title>");
client.println("<script>");
client.println("function GetSwitchState() {");
client.println("nocache = \"&nocache=\"\+ Math.random() * 1000000;");
client.println("var request = new XMLHttpRequest();");
client.println("request.onreadystatechange = function() {");
client.println("if (this.readyState == 4) {");
client.println("if (this.status == 200) {");
client.println("if (this.responseText != null) {");
client.println("document.getElementById(\"switch_txt\")\.innerHTML = this.responseText;");
client.println("}}}}");
client.println("request.open(\"GET\", \"ajax_switch\" + nocache, true);");
client.println("request.send(null);");
client.println("setTimeout('GetSwitchState()', 1000);");
client.println("}");
client.println("</script>");
client.println("</head>");
client.println("<body onload=\"GetSwitchState()\">");
client.println("<h1>Dverní status a zamek.</h1>");
client.println("<p id=\"switch_txt\">Neni signal.</p>");
client.println("</body>");
client.println("</html>");
}
// display received HTTP request on serial port
Serial.print(HTTP_req);
HTTP_req = ""; // finished with request, empty string
break;
}
// every line of text received from the client ends with \r\n
if (c == '\n') {
// last character on line of received text
// starting new line with next character read
currentLineIsBlank = true;
}
else if (c != '\r') {
// a text character was received from client
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
}
}

// send the state of the switch to the web browser
void GetSwitchState(EthernetClient cl)
{
if (digitalRead(3)) {
cl.println("Dvere jsou zavrene.");
}
else {
cl.println("Dvere jsou otevrene.");
}
}

Datum
Vložil
Titulek

dvě SPI zařízení

Dobrý den všem, pracuji na RFID přístupovém systému, který má jednak ovládat el. zámek a také zapisovat přístupy na SD kartu. Mám arduino UNO a k němu připojený modul LCD Nokia 5110, modul RTC, modul RFID RC522, modul relé a potřebuji ještě připojit modul SD karty, ale tady jsem skončil. Doposud mi funguje vše jak bych si přál, ID čipů se mi zobrazuje s datumem a časem na LCD i na serial monitoru, ale potřebuji to ještě zapsat na SD, ale mám obsazeny všechny piny na arduinu. Modul RFID je připojen k SPI, modul SD je také SPI, uměl by mi někdo poradit jakým způsobem připojit tyto dva moduly k SPI sběrnici? Na netu jsem zjistil že to jde, ale nevím jak :-(

Datum
Vložil
Titulek

Re: dvě SPI zařízení

SPI sběrnice má všechna zařízení připojena paralelně na pinech MOSI, MISO a SCLK. A pak je ke každému zařízení zvlášť natažen drát SS (Slave Select) též označovaný např. jako nCS, CS, CSB, CSN, EN, nSS, STE nebo SYNC. A právě pomocí tohoto pinu 'master' zařízení ovládá se kterým 'slave' zařízením právě komunikuje. Více info např. zde: https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus

Datum
Vložil
Titulek

Arduino+LCD 2x16+Button+LED

Zdravím,
uměl by mi někdo poradit, jak vytvořit menu, kde bych pomocí tlačítek ovládal LEDky- ON/OFF a jejich jas. Celé by se to zobrazovalo na LCD, např. LED 1 ON jas 50%.
Děkuji za odpověď.

Datum
Vložil
Titulek

GSM a Arduino

Zdravím chcel by som sa opýtať či robil niekto s GSM modulom a arduinom Mega 2560 lebo som s tým zacal a nikde som nenašie nejaké informácie ohľadom toho. Ak by sa niekto našiel bol by som rád ak by sa mi ozval buď tu alebo na mail richard.huray@gamil.com Ďakujem

Záznamy: 61 - 90 ze 286

<< 1 | 2 | 3 | 4 | 5 >>

Vyhledávání

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