Show Posts
Pages: 1 2 [3] 4 5 ... 47
31  International / Software / aggiungere (o sottrare UNA sola volta un numero a una variabile on: December 26, 2013, 01:31:18 pm
c'è un sistema standard  pe   eseguire una sola volta un operazione di sottrazione o somma  tra 2 variabili,
senza che questi nel loop   continuano a farlo?

es:  se metto
 K = K - K_azzerante ;   
dopo un pochi secondi mi ritrovo con un numero enorme,
mi serve che k possa prendere qualsiasi valore sottratto il valore di K_azzerante   UNA volta sola

tipo 
  se   K_azzerante = 5

K =  100  diventa   K= 95

K = 200  diventa   K = 195

K = 3333  diventa   K = 328

tanks
32  International / Software / Re: perche questa "riga" da problemi? on: December 25, 2013, 09:57:41 am
Invece di riportare un "codice simile" preso dal playground, riporta il TUO codice, così ci viene più facile aiutarti!

e natale niente  "cattiverie"   smiley-twist  appena passate le feste e mi viene il coraggio   lo posto
33  International / Software / Re: perche questa "riga" da problemi? on: December 25, 2013, 05:26:10 am
No, è la stessa cosa ... pensaci ...

Code:
if(negative  ==   true )

viene valutata l'espressione all'interno delle parentesi che da un risultato true (==) o false (!=), dopo di che l'IF si comporta di conseguenza. Ma, dato che negative è già true o false ... l'IF può valutalo direttamente senza fare un inutile confronto in più smiley-wink

Guglielmo

più o meno ho capito  (forse) 

ma mettendo    boolean negative;  senza nient'altro  che valore   assume di default negative ?

e come faccio a vedere sul serial monitor   se è true  o  false

34  International / Software / Re: perche questa "riga" da problemi? on: December 25, 2013, 03:57:30 am
il problema "pare" che sia ---negativo----   smiley-eek
non riesco a vedere (col serial monitor ) che valore assume  negativo    smiley-confuse

se metto serialPrint (negativo)  visualizza numeri senza senso invece di zero uno  o false true

all'inizio del codice e  boolean negative;

metto qui un codice simile preso dal playground   http://playground.arduino.cc/Main/LedControl


Code:
void printNumber(int v) {
    int ones;
    int tens;
    int hundreds;
    boolean negative;

    if(v < -999 || v > 999)
       return;
    if(v<0) {
        negative=true;
        v=v*-1;
    }
    ones=v%10;
    v=v/10;
    tens=v%10;
    v=v/10;
    hundreds=v;
    if(negative) {
       //print character '-' in the leftmost column
       lc.setChar(0,3,'-',false);

    else {
       //print a blank in the sign column
       lc.setChar(0,3,' ',false);    }
    }
    //Now print the number digit by digit
    lc.setDigit(0,2,(byte)hundreds,false);
    lc.setDigit(0,1,(byte)tens,false);
    lc.setDigit(0,0,(byte)ones,false);
}

a parte che cosi com'è non funziona mancherebbero     smiley-money    i "pinmode"  setup    #include ecc

non so se è un errore
o molto probabilmente non so come funziona  boolean negative;

ad un certo tunto viene scritto
 
if(negative ) {
       //print character '-' in the leftmost column   
       lc.setChar(0,3,'-',false);

ma non dovrebbe essere scritto   if(negative  ==   true )
35  International / Software / Re: perche questa "riga" da problemi? on: December 24, 2013, 08:37:28 am
proverò a fare ancora un tentativo  con le parentesi
36  International / Software / Re: perche questa "riga" da problemi? on: December 24, 2013, 01:09:39 am
if  viene eseguito lo stesso  anche se le condizioni non sono state raggiunte  smiley-confuse
37  International / Software / perche questa "riga" da problemi? on: December 23, 2013, 07:04:14 pm
  if (negativo == true && calibro > 999 && calibro < 10000) lc.setChar(0,4,'-',false);
 else  lc.setChar(0,4,' ',false);

questa riga non fa il suo dovere  e non mi e chiaro il motivo   smiley-sad
38  International / Hardware / Re: Multiplexing e PWM on: December 22, 2013, 12:35:03 pm
Ciao!
Dovrei realizzare un timer utilizzando il display a 7 segmenti con 4 cifre (che tra le altre cose ho anche una discreta difficoltà a reperire). Il display ha già i pin dei segmenti collegati così da poter lavorare in multiplexing senza dover fare altri collegamenti, vorrei però fare in modo di poter controllare la luminosità. Il modo più semplice che mi è venuto in mente è quello di collegare i transistor dei singoli anodi delle cifre ai pin pwm di arduino, così da mandare il valore a 0 nel momento in cui la cifra è spenta e al valore desiderato quando è visibile.
Il dubbio è che avendo un refresh abbastanza alto (ditemi voi quanto dovrebbe stare accesa ogni singola cifra) il pwm lavora correttamente??
mah...    tempo fa   m'era venuta in mente l'idea   di alimentare   i display  con un alimentazione regolabile separata
( LM317 seguito da diodi se necessario)
ed arduino   lo usavo solo come pilotaggio  dei transistor (tipo bc 547)   sia su i segmenti che sul comune
ma non l'ho mai messa in pratica
39  International / Generale / Re: display a 4 cifre PROBLEMA on: December 22, 2013, 08:56:15 am
Quote
lo schema   corretto per arduino   e mettere anche un transistor su ogni segmento
ma ti consiglio  di abbandonare subito il multiplex con arduino  e adoperare il max 7219
costa 2 euro pilota 8 cifre e vuole solo 2 pin,

Dove hai visto il 7219 a 2 Euro? Quando guardi i prezzi su Ebay guarda anche il costo di spedizione.
Quote
per fare le cose ben fatte anche con arduino solo,  ci vanno 8 transistor che pilotano i segmenti + un transistor  per ogni cifra ed
8 resistenze sui segmenti  oltre  a una resistenza per ogni base dei transistor  solo cosi fai un lavoro perfetto altrimenti come ha spiegato Menniti vedi l'uno luminoso e l'otto che brilla la metà  (fai te il conto 12 transistor  e 18 resistenze smiley-sad  )

Di transistor ne bastano 4, gli altri 8 sono necessari solo se c'è l'intenzione di alimentare i led con correnti superiori a 15mA, corrente che normalmente è oltre le necessità più comuni. In genere 10mA sono sufficienti ad ottenere una buona luminosità anche se osservati a distanza di qualche metro.

Con il 7219 il codice di gestione del multiplex non è più necessario, ma si deve comunque gestire un traffico dati seriale, che viste le alte velocità di trasmissione, impegna poco il microcontroller.

A sfavore del 7219 c'è il costo e lo spazio necessario sul pcb.

Io ho un multiplex 7seg x4 con codice di gestione su interrupt timer, e posso dire che anche se il micro è impegnato in calcoli lunghi non ci sono problemi di visualizzazione né tanto meno  nell'intercettazione dei 4 tasti connessi al multiplex. Per cui la gestione di 7seg x4 è fattibile ed economica, anche perché con gli stessi 4 pin dei catodi + 1 pin si gestiscono i 4 tasti. 4 tasti con pressione simultanea ed a tempo, e a sequenza insomma massima flessibilità.

Vero il codice di gestione non è dei più semplici, ma una volta messo a punto tutto funziona regolarmente.

PS: Quasi tutti i produttori anche molto professionali usano per i loro digital temp controller un micro e 4 transistor, specie se il controller rientra nella fascia di costo entry level.

Ciao.


mah..   tutto dipende  anche io ho fatto le mie prove  e se devi visualizzare un analogread    "te la puoi cavare"
ma rimane sempre un compromesso che  o fai fare ad arduino il visualizzatore o gli fai fare il micro
poi "tutto dipende"   se guardi il display nemmeno  una volta all'ora  non ti importa se sfarfalla o ha altri difettucci,
per l'interrupt  anche li bisogna vedere ogni quanto arriva,  se arriva 3 volte al secondo stiamo freschi

prova a ricevere 2 volte al secondo un int   a 6-7 cifre   da seriale   col tuo multiplex  e dimmi che succede che sono curioso   
40  International / Generale / Re: display a 4 cifre PROBLEMA on: December 22, 2013, 01:31:05 am
potrei fare una cosa del genere ?? ma io ho 8 resistenze da 270 ohm

per il 7219 ci vogliono i display a catodo comune
  per fare le cose ben fatte anche con arduino solo,  ci vanno 8 transistor che pilotano i segmenti + un transistor  per ogni cifra ed
8 resistenze sui segmenti  oltre  a una resistenza per ogni base dei transistor  solo cosi fai un lavoro perfetto altrimenti come ha spiegato Menniti vedi l'uno luminoso e l'otto che brilla la metà  (fai te il conto 12 transistor  e 18 resistenze smiley-sad  )

purtroppo arduino eroga poca corrente
41  International / Generale / Re: display a 4 cifre PROBLEMA on: December 21, 2013, 03:47:26 pm
In generale so cosa sia ma lo usato in altri casi e a dirla tutta ne so veramente poco.

lo schema   corretto per arduino   e mettere anche un transistor su ogni segmento
ma ti consiglio  di abbandonare subito il multiplex con arduino  e adoperare il max 7219
costa 2 euro pilota 8 cifre e vuole solo 2 pin,

gia con 4 cifre   cosi prende 12 pin   e se lo sketch richiede l'uso di interrupt  o delay  superiori a 7-8 millisecondi vedi uno schifo

quindi max 7219  forever  smiley-wink  fa "tutto" lui e regoli la luminosità via software
42  International / Software / Re: istruzione switch on: December 20, 2013, 04:16:52 pm
Di solito si ... ma il punto e' l'opposto ... usando resistenze e condensatori, si puo fare a meno delle routine di debounce (quindi meno cicli da eseguire, meno ritardi, meno codice e piu memoria a disposizione per il resto smiley-wink smiley-lol)

In piu, cosa non indifferente, l'hardware, di solito, funziona sempre al primo colpo, al contrario del software ... (aspetta che mi riparo dietro un muro, prima che i softwaristi qui attorno comincino a tirare bottiglie di birra e sgabelli smiley-razz smiley-lol smiley-lol smiley-lol)
tutto "dipende"  se avessi lo sketc  troppo grande   ci può anche stare l'hardware ,

altrimenti solo e sempre software  che non costa nulla  smiley-wink
43  International / Software / Re: istruzione switch on: December 19, 2013, 08:44:41 am
buon giorno a tutti
ho provato con il pin analogico ma nulla da fare
qui in allegato un semplice programmino che dovrebbe fungere allo scopo
pin digitale 8  ( input)
e due testi con il ciclo IF
ho caricato il tutto la commutazione avviene ma rimane leggermente impressa la scritta precedente
mettendo anche il  lcd.clear()

#include <LiquidCrystal.h>
LiquidCrystal lcd(4,9,5,6,7,3);
const int buttonPin = 8;    
int buttonState = LOW;        

void setup() {
  lcd.begin(16,4);
  
  pinMode(buttonPin, INPUT);    
}

void loop(){
    buttonState = digitalRead(buttonPin);
   if (buttonState == LOW)
  {    
   lcd.setCursor(0,0);
 lcd.print("buongiorno ");
  }
  else
  {
  lcd.setCursor(0,0);
lcd.print("buonanotte ");
  }
}

finche non parte questo piccolo programma e inutile lavorare sull'altro.


ma dove è l'istruzione switch  ?
ma come fai a dichiarare 8 input  e poi gli assegni = LOW    smiley-evil
se metti un interruttore a levetta (per mettere a massa 8,,) devi fare pullup  mettendo = HIGH
se metti un pulsante è tassativo  qualche tipo di debounce
44  International / Generale / Re: OBD-II con STN1110 on: December 12, 2013, 01:27:44 pm
volevo chiederti un "parere"  visto che sei esperto dell'argomento obd can,
 la mia auto alfa 147   fa apparire nello schermino del cruscotto  la stessa scritta che compare sol display della radio originale,  di solito il nome  la stazione radio

quasi sicuramente viene adoperato un connettore/connessione  can   per mandare i "dati"  dalla radio al cruscotto,

volevo sapere come approfondire l'argomento  pe poter utilizzare il su detto connettore per poter mandare "messaggi"
allo schermino del cruscotto tramite arduino o interfaccia/arduino
tanks

Ciao gingardu,
personalmente non ho mai fatto niente di simile e non so darti informazioni con certezza però dopo una rapida ricerca su google ho trovato una guida davvero interessante divisa in 2 parti che spiega come interfacciare un qualsiasi dispositivo direttamente ai comandi dell'auto: quest'aspetto è davvero interessante e se avessi avuto il tempo l'avrei approfondito ma purtroppo l'università non me lo permette. Ti consiglio di leggere attentamente il datasheet dell'ELM327 soprattutto la parte riguardante i comandi AT: li troverai tutte le informazioni utili. Da parte mia spero di trovare il tempo per poter approfondire questo a cui fino ad ora non ci avevo proprio pensato... Grazie per l'idea!  smiley smiley

ok ..    pero NON volevo connettermi tramite elm alla presa obd   che tra laltro c'è già collegato un elm 327 blue tooth   che adopero  con il cellulare android con torque,

volevo   "simulare"   i dati che invia l'autoradio originale (una Blaupunkt)  quasi sicuramente attraverso un connettore extra
a 2 fili se la memoria non mi inganna,   ovviamente l'autoradio originale non c'è più che l'avevo sostituita con una più "performante" molto tempo fa,  il "fantomatico" connettore è rimasto senza nessun collegamento
quindi l'idea sarebbe si simulare quello che faceva la radio su quel connettore a 2 fili  (rete can ?)

ovviamente il tutto per evitare di appiccicare un altro monitor/schermino posticcio   che in auto è sempre un po' un problema   smiley-cry
45  International / Generale / Re: OBD-II con STN1110 on: December 12, 2013, 08:12:46 am
Ciao Dario, complimenti per il progetto OBD. Sono visibili da qualche parte schema e sorgenti per il MBED?


Per la realizzazione dello shield puoi utilizzare lo schema elettrico della board sparkfun. Inoltre volendo puoi anche realizzare soltanto il transceiver CAN (sempre interfacciato con l'STN1110) in modo da semplificare il tutto ma poi ovviamente funzionerà soltanto con auto che utilizzano appunto questo protocollo.

volevo chiederti un "parere"  visto che sei esperto dell'argomento obd can,
 la mia auto alfa 147   fa apparire nello schermino del cruscotto  la stessa scritta che compare sol display della radio originale,  di solito il nome  la stazione radio

quasi sicuramente viene adoperato un connettore/connessione  can   per mandare i "dati"  dalla radio al cruscotto,

volevo sapere come approfondire l'argomento  pe poter utilizzare il su detto connettore per poter mandare "messaggi"
allo schermino del cruscotto tramite arduino o interfaccia/arduino
tanks
Pages: 1 2 [3] 4 5 ... 47