Show Posts
Pages: [1]
1  International / Software / Re: serial arduino mega NON riceve on: January 24, 2013, 01:37:15 pm
Hai collegato i GND delle due schede tra di loro?
Se non l'ho hai fatto è come misurare la vera altezza di due persone che però portano scarpe diverse.

Si si sono collegate ... Hanno la stessa alimentazione.

Per adesso ho "risolto" sottraendo il 208 che stranamente viene sommato ai dati in arrivo:  smiley-grin

Code:
INdati = Serial1.read()-208; 

e per adesso funziona, ma se possibile vorrei capire perché fa così.
2  International / Software / Re: serial arduino mega NON riceve on: January 24, 2013, 08:37:28 am
buongiorno, ho fatto alcune prove e tutto funziona correttamente. C'è però una piccola imprecisione nella comunicazione, cioè l'arduino uno invia i dati corretti, ma il mega li riceve sommati a 208. cioè se arduino uno invia 41, il mega riceve 208... perchè? invece se ad arduino uno gli attacco il cavo usb, il computer visualizza i dati giusti.

ciao, Marco
3  International / Software / Re: serial arduino mega NON riceve on: January 23, 2013, 10:14:45 am
Il codice del core di Arduino che richiama il serial event è:
Code:
void serialEventRun(void)
{
#ifdef serialEvent_implemented
  if (Serial.available()) serialEvent();
#endif
#ifdef serialEvent1_implemented
  if (Serial1.available()) serialEvent1();
#endif
#ifdef serialEvent2_implemented
  if (Serial2.available()) serialEvent2();
#endif
#ifdef serialEvent3_implemented
  if (Serial3.available()) serialEvent3();
#endif
}
quindi hai sbagliato il nome della funzione richiamata. correggi in serialEvent2

[...]


AHHHAHH... il fatto è che ero proprio convinto quando lo scrivevo... Ho anche pensato "sarà giusto? mah, me lo dirà il compilatore..."

Grazie PaoloP
4  International / Software / serial arduino mega NON riceve on: January 23, 2013, 08:29:00 am
Buongiorno a tutti, sono di nuovo qui a disturbare... smiley-roll

Sto lavorando ad una piccola rete rs485, in cui ci sono due arduino UNO e un arduino MEGA.

Quando invio dati via serial da arduino MEGA ad arduino UNO è tutto OK...
Ma quando invio i dati da UNO a MEGA, il mega non riceve... non entra nemmeno nel void serialEvent.

Ho provato anche a collegare direttamente le porte seriali di MEGA e UNO (escludendo intanto il terzo).

Non funziona.

Il codice sul MEGA è questo:
Code:
Serial2begin(9600);
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

...
void serial2Event() {
  while (Serial2.available()) {
    inrs485=Serial2.read();
  }
  Serial.write(inrs485);
  lcd.print("RX485");
  lcd.print(inrs485);
  inrs485=0;
   
}

Non funziona.

Ho provato anche con le altre seriali, addirittura con quella collegata all'USB, ma io invio i dti dal PC, arduinoMEGA non li riceve (con il monitor seriale).

Il programma dell'arduino UNO che invia i dati è questo (funzionante perchè vedo i dati anche con il monitor seriale collegato a arduino UNO):

Code:
...
if(digitalRead(12)==1){
Serial.write(20);
}

Ma il MEGA non riceve nulla.

Mi potete aiutare perfavore?

Grazie, Marco
5  International / Hardware / Re: Problemi con pulsanti e arduino Mega 2560 on: January 16, 2013, 03:25:14 pm
La pasta salda non è convincente, non conduce

Se tu mi metti gli input in pull-up interno verso +5v e usi un controllo
if(digitalRead(37)==0){
lcd.print("4");
}
con pulsanti aperti tra pin e gnd come faceva a darti valori sballati senza toccare i bottoni ? anche con falsi contatti non poteva darti i numeri anche senza cavi verso la pulsantiera. Allora c'erano dei corti da troppo stagno  smiley-grin



Non lo so... comunque togliendo i residui di pasta (forse era impregnata con acqua per via dell'umidità?  smiley-confuse) ha funzionato.

Forse nel programma ho impostato qualcosa di strano e non me ne sono accorto, quindi riscrivendolo non ho più fatto l'errore e ha funzionato...
Lo stagno comunque era a posto perchè l'unica cosa che non ho toccato in tutto questo problema è il saldatore.

Il fatto dei residui di pasta salda mi aveva dato problemi anche in passato, il problema non è quello strato trasparente/giallo che si forma saldando sulla pasta, che è normale, ma proprio i pezzi di pasta che sono caduti/depositati interi tra le piazzole, perché quando ho fatto una misura di resistenza col tester segnava un valore, ho tolto il pezzettino di pasta e immediatamente la misura del tester è schizzata in alto.
6  International / Hardware / Re: Problemi con pulsanti e arduino Mega 2560 on: January 16, 2013, 12:59:19 pm
ciao, in questi casi, quando non sai se non va la scheda o hai sbagliato il codice ti conviene mettere manualmente i pin di arduino a vcc o a gnd con dei semplici cavetti, così almeno sai dove sta il problema smiley

Infatti sono riuscito a risolvere il problema proprio facendo così  smiley-lol
7  International / Hardware / Re: Problemi con pulsanti e arduino Mega 2560 on: January 16, 2013, 11:35:59 am
Aggiornamento:

Ho ricontrollato la scheda su cui vanno i pulsanti (da cui parte poi il cavo dell'arduino mega), e l'ho pulita da dei residui che sembravano di pasta salda... FUNZIONA

Adesso funziona, ovviamente adesso devo mettere a posto il codice come dice Cyberhs, il quale ringrazio per il codice che ha postato, che adesso adotterò per la gestione dei miei pulsanti.

Quindi ho scoperto che la pasta salda conduce (se ne rimangono dei pezzetti solidi).. Non come il rame, ma un pezzettino grande quanto un pin di un integrato DIL ha una resistenza di circa 1,5 KOhm... Non so se è normale, se è una caratteristica di ogni tipo di pasta, comunque la mia conduce.

Ringrazio tutti voi per l'aiuto (e mi scuso per il tempo perso), e in particolar modo l'utene Cyberhs, per il codice che adesso utilizzerò.

PS: devo cambiare il titolo del topic e mettere [RISOLTO] o va bene se lo lascio così com'è?
8  International / Hardware / Re: Problemi con pulsanti e arduino Mega 2560 on: January 16, 2013, 10:50:26 am
I pulsanti sono sicuramente normalmente aperti (e funzionanti).

Ho provato a dichiarare gli ingressi solo come INPUT, e a inserire le resistenze di pullup esterne da 1 KOhm.
ogni tanto quando premo un pulsante il display visualizza il numero di un altro pulsante, che al momento non è premuto.
I pulsanti sono collegati correttamente, li ho collegati ad una scheda dove ci sono le resistenze di pullup, ma anche la scheda va bene...
Può essere che le resistenze di pullup siano troppo piccole? Con il tester alcune sono addirittura di 800 Ohm...
Che sia per quello?

Addirittura premendo il tasto corrispondente al numero "9" adesso sul display mi viene stampato il punto e virgola (";").

Vi ringrazio per l'aiuto, Marco
9  International / Hardware / Re: Problemi con pulsanti e arduino Mega 2560 on: January 15, 2013, 02:06:39 pm
Ah si si.. scusate

Code:
#include liquidcrystal

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

void setup(){

lcd.begin(20, 4);
pinMode(31, INPUT_PULLUP);
pinMode(33, INPUT_PULLUP);
pinMode(35, INPUT_PULLUP);
pinMode(37, INPUT_PULLUP);
pinMode(39, INPUT_PULLUP);
pinMode(41, INPUT_PULLUP);
pinMode(43, INPUT_PULLUP);
pinMode(45, INPUT_PULLUP);
pinMode(47, INPUT_PULLUP);
pinMode(49, INPUT_PULLUP);
pinMode(51, INPUT_PULLUP);
pinMode(53, INPUT_PULLUP);
}

void loop(){

if(digitalRead(31)==0){
lcd.print("1");
}
if(digitalRead(33)==0){
lcd.print("2");
}
if(digitalRead(35)==0){
lcd.print("3");
}
if(digitalRead(37)==0){
lcd.print("4");
}

}


Ho provato anche mettendo un delay(10) in ogni IF (ma nulla...).
il display si riempie di 1 di 2 di 3 e di 4...

Ho provato anche a mettere un clear ogni TOT secondi (usando il clock che parte all'accensione di arduino), ma continua allo stesso modo.

Come si fa di solito a controllare dei pulsanti con Arduino??

(N.B.: la sintassi dello sketch potrebbe non essere perfetta (es. "Lcd" invece che "lcd" in quanto l'ho riscritto a memoria)
10  International / Hardware / Problemi con pulsanti e arduino Mega 2560 on: January 15, 2013, 01:09:12 pm
Buonasera a tutti, scusate per la banalità della richiesta ma mi trovo in un punto morto.

Ho collegato 12 pulsanti agli ingressi dell'Arduino MEGA 2560, collegati tra massa e ingresso (i pulsanti sono N.O.).
Gli ingressi sono: 31,33,35,37,39,41,43,45,47,49,51,53.

Ho fatto delle prove per stampare su un display hd44780 lo stati dei pulsanti.

Posto solo gli spezzoni di programma necessari per un pulsante, gli altri sono tutti uguali:

Code:
pinMode(31, INPUT_PULLUP);  //questo per tutti i 12 ingressi;

if(digitalRead(31)==0){
 lcd.print("OK");
}

Questo inizialmente (per non complicare troppo) l'ho fatto per quattro pulsanti.

Il problema è che sul display appaiono le stampe di tutti i pulsanti, a caso, sia che li premo sia che lo li premo. Ho provato a scollegarli fisicamente ma fa così comunque.

Fate conto che i quattro pulsanti che ho incluso nel programma sono numerati da 1 a 4, sul display partono a raffica i numeri da 1 a 4 a caso.

Ho provato a cercare su internet, a cambiare il programma, ma non riesco a risolvere il problema.

Voi come fate a interfacciare i pulsanti con ArduinoMEGA2560 ??

Vi ringrazio anticipatamente per le risposte, mi rendo conto che è un problema da principianti, ma non riesco a capire....

Grazie, Marco
11  Topics / Home Automation and Networked Objects / Re: Connect more arduino on: December 07, 2012, 01:03:26 pm
maybe i use rs485... connecting the control pin of the MAX485 to an output of arduino, i can control the direction of messages (TX or RX).. Is it right?

Maybe is the better choice...

Thanks, Marco

Ps: now i do some experiments... smiley
12  Topics / Home Automation and Networked Objects / Re: Connect more arduino on: December 05, 2012, 02:56:26 pm
Hello.
I answer at all yours questions:

The max distance between the boards is 5 meters, but it have to work at longer distance, like 10 / 20 m
Number of boards is not up to 10.

I can't use I2C because the cables are near motors (for the noise (electrical noise)).

Can i use ethernet connection for more arduino, without any PC?

Thanks, Marco
13  Topics / Home Automation and Networked Objects / Connect more arduino on: December 04, 2012, 11:53:04 am
Hello, i'm new in the community, i search information about creating a kind of network with more arduino. I use "arduino Mega2560" for the master (or the server?) and arduino uno for the slaves.
I think about ethernet, with ethernet shield, but it's expensive because i have to use one shield for each arduino and a ethernet switch
I need a full duplex connection, for send information from the master to the slaves and receive status and other information.
The rs495 is good, but isn't full duplex.

Excuse for my english if there are some errors, but i'm italian.

Bye, Marco
Pages: [1]