Show Posts
Pages: 1 [2] 3
16  International / Generale / Re: reed switch on: August 11, 2011, 12:18:32 pm
Mah... non mi pare sicura come cosa. Se uno inavvertitamente urta con la mano un paio di pezzi e li fa cadere e poi non si ricorda come stavano e li rimette a caso?

beh diciamo che io ho intenzione di usarla in una situazione ideale in cui i giocatori (io e un mio amico smiley-grin ) siano "composti" e non facciano cadere i pezzi. quello che dici tu ovviamente è un problema, non tanto per il fatto che non si ricordi quale sia la posizione (non mi è mai capitato di far cadere un pezzo e di non ricordarmi dov'era), tanto quella di verificare che sia una mossa regolamentare (se mi cade un pezzo per terra per esempio, lo stato di quel reed passerà da 1 a 0, però non ho la corrispondenza con un altro reed che sia passato da 0 a 1). insomma io la faccio abbastanza semplice, ma poi dovrò pensarci bene per gestire le varie "eccezioni". quello che mi interessa come primo step è gestire la situazione ideale in cui i giocatori non facciano cadere i pezzi e in cui si eseguano mosse regolamentari.

certo che puoi usarli su arduino, considerali come un pulsantino, quindi metti una resistenza di pullup o pulldown a seconda di come vuoi il segnal

perfetto grazie mille per l'info  smiley
17  International / Generale / Re: reed switch on: August 11, 2011, 12:07:56 pm
E come fai a sapere qual è il pezzo appoggiato in una determinata casella? Con questo sistema sai solo che c'è un pezzo, non quale.

la posizione di partenza è uguale per tutte le partite. ogni tot ms o con qualche interrupt appena c'è una variazione di qualche pin di input vado a leggermi tutti gli stati dei reed e li confronto con la situazione precedente. guardo quali si sono modificati e capisco qual'è il pezzo che è stato mosso.

detto a parole è molto semplice, poi sono sicuro che smadonnerò non poco quando lo farò smiley
18  International / Generale / reed switch on: August 11, 2011, 11:48:46 am
ciao a tutti,

ho in mente di farmi una scacchiera elettronica che mi memorizzi su scheda sd o usb le partite giocate.

l'idea è quella di utilizzare i reed switch per fare una griglia tipo

http://2.bp.blogspot.com/-jCmysxfe5xw/TatsQIhYGgI/AAAAAAAAABA/852d7LhTqKE/s1600/Reed+switch+wiring.png

l'idea è semplice: dei reed switch (uno sotto ogni casella della scacchiera), e un magnete posto alla base dei pezzi. quando il pezzo è sulla casella, il reed switch si dovrebbe chiudere e quindi segnala che è presente un pezzo.

al di fuori dei vari algoritmi per la gestione di tutto che so già come farli, ho un dubbio sulla parte hw:

avrei trovato questi reed switch https://www.distrelec.it/ishop/Datasheets/03749298.pdf ma non capisco una cosa (sono abbastanza ignorante in elettronica smiley-grin ). il datasheet mi da come switching voltage max 200 VDC. vuol dire che al massimo lo posso collegare ad una tensione di 200vdc? se lo collego a +5v di arduino, e ci collego ad una estremità un pin digitale settato in input, quando il reed si chiude fa passare i 5v e pertanto sul pin dovrebbe segnarmi 1. è giusto o sto dicendo una cavolata?
19  International / Generale / Re: problema: smartec uti, pt100 o arduino? on: March 09, 2011, 01:08:32 pm
ti ho scritto in privato che non so se si possono dire nomi di siti per forum
20  International / Generale / Re: problema: smartec uti, pt100 o arduino? on: March 09, 2011, 06:50:50 am
dopo un altro giorno di tentativi, sono giunto alla conclusione che o qualcosa  dell'integrato è partito, o qualcosa di arduino è partito. ho ordinato un nuovo uti che dovrebbe arrivarmi sett prossima: se con lo stesso codice funzionerà, problema risolto. altrimenti...boh smiley-grin
21  International / Generale / Re: problema: smartec uti, pt100 o arduino? on: March 07, 2011, 02:59:55 pm
dunque: il codice è quello originale (e sicuro al 100% che funzionava quando lo provai la prima volta). il circuito ho ricontrollato tutto ed è pari a pari come nello schema del topic che ho postato (con la differenza che ho pt100 invece che pt1000 e che le resistenze del circuito cambiano, secondo il datasheet dell'uti smartec).

ho fatto come mi hai detto (ho aggiunto anche la stampata al video dell'istruzione
Code:
uint8_t port = digitalPinToPort(pin);

si blocca subito alla prima iterazione. ti posto la stampa su seriale (continua cosi, non va avanti):
Code:
port:100
i: 0 pir: 100001 bit: 100000 mask: 100000
i: 0 pir: 100001 bit: 100000 mask: 100000
i: 0 pir: 100001 bit: 100000 mask: 100000
i: 0 pir: 100001 bit: 100000 mask: 100000
i: 0 pir: 100001 bit: 100000 mask: 100000
...
...
...

ho provato anche a stampare su seriale in continuazione il valore del pin digitale 5, e con il circuito alimentato è sempre impostato a 1.

sul datasheet dell'uti, spiega come calcolare il valore in uscita da quel pin, ma non so come tramutarlo in codice classico (spiega solo la teoria):

dice:
Quote
The output of the UTI is a period modulated signal. As an example, Figure 2 shows two complete cycles of
the output signal from the UTI, each consisting of three phases

link immagine: http://img641.imageshack.us/i/uti.png/

per la lettura di 3 pt100 (con il circuito del topic postato sopra), mette questa tabella per calcolare i valori i voltaggi:

link tabella: http://img855.imageshack.us/i/uti1.png/

questa tabella, nel mio codice credo si riferisca a queste istruzioni:
Code:
nOff=width[startindex]+width[startindex+1];
nAB=width[startindex+2];
nCD=width[startindex+3];
nBC=width[startindex+4];
nDF=width[startindex+5];

*res1=((nBC-nOff)/(nAB-nOff))*refRes;
*res2=((nCD-nOff)/(nAB-nOff))*refRes;
*res3=((nDF-nOff)/(nAB-nOff))*refRes;


purtroppo di questa cose tecniche ci capisco pressochè zero smiley-sad


22  International / Generale / Re: problema: smartec uti, pt100 o arduino? on: March 07, 2011, 10:22:58 am
questo è il codice:

Code:

Serial.println("2");
for(i=0;i<12;i++) {
while ( (*portInputRegister(port) & bit) == stateMask)
    width[i]++;
Serial.println("3");
while ( (*portInputRegister(port) & bit) != stateMask)
    width[i]++;
Serial.println("4");
    }
23  International / Generale / problema: smartec uti, pt100 o arduino? on: March 07, 2011, 06:48:10 am
ciao a tutti.

ho un problema che è da due giorni che cerco di risolvere ma non he cavato fuori nulla:

ho tre pt100 da cui voglio leggere i loro valori di resistenza. ho comprato questo integrato http://www.smartec.nl/pdf/DSUTI.pdf che sembra proprio fare al caso mio: è progettato appositamente per la lettura di pt100 più altro ancora.

come circuitino e codice ho presto spunto da questo topic http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1269857588 utilizzando il codice di quell'utente (quello verso il fondo della pagina).

riporto anche qui il codice:
Code:
#include <stdio.h>
#include "pins_arduino.h"

#define UTI_PIN 5
#define UTI_RESISTANCE_REF 1000

void setup()
{
  Serial.begin(9600);
  pinMode(UTI_PIN, INPUT);
}

void loop()
{
  double res1,res2,res3;

   if(ReadUTI(UTI_PIN,&res1,&res2,&res3,UTI_RESISTANCE_REF)) {
Serial.print("Resistance 1: ");
Serial.print(res1);
Serial.print("\t");
Serial.print("Resistance 2: ");
Serial.print(res2);
Serial.print("\t");
Serial.print("Resistance 3: ");
Serial.print(res3);
Serial.print("\t");
    }
    else {
Serial.print("Not Found");
    }
    Serial.print("\n");
   delay(2000);
}

int ReadUTI(uint8_t pin, double * res1,double * res2,double * res3,int refRes)
{
    int state = HIGH;
    int i,startindex=-1;
    uint8_t bit = digitalPinToBitMask(pin);
    uint8_t port = digitalPinToPort(pin);
    uint8_t stateMask = (state ? bit : 0);
    unsigned long width[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
    double nOff=0,nAB=0,nCD=0,nBC=0,nDF=0;

    while ( (*portInputRegister(port) & bit) != stateMask)
 ;

    for(i=0;i<12;i++) {
while ( (*portInputRegister(port) & bit) == stateMask)
   width[i]++;
while ( (*portInputRegister(port) & bit) != stateMask)
   width[i]++;
    }
    for(i=1;i<12;i++) {
if(i<7) {
 if(width[i]<width[i+2]&&width[i]<width[i+3]&&width[i]<width[i+4]&&width[i]<width[i+5]&&width[i+1]<width[i+2]&&width[i+1]<width[i+3]&&width[i+1]<width[i+4]&&width[i+1]<width[i+5]) {
   startindex=i;
   i=12;
 }
}
    }
    if(startindex!=-1) {
nOff=width[startindex]+width[startindex+1];
nAB=width[startindex+2];
nCD=width[startindex+3];
nBC=width[startindex+4];
nDF=width[startindex+5];

*res1=((nBC-nOff)/(nAB-nOff))*refRes;
*res2=((nCD-nOff)/(nAB-nOff))*refRes;
*res3=((nDF-nOff)/(nAB-nOff))*refRes;

return 1;
    }
    else {
return 0;
    }
}


premetto che fino a un mese fa ha sempre funzionato egregiamente. ieri ritiro fuori il tutto, collego le pt100 al circuito, attacco arduino e non mi legge più niente.


facenco un po di debug software, ho notato che mi si blocca all'interno di questo ciclo while (sulla seriale mi viene stampato solamente '2' ma non '3').
Code:
   Serial.println("2");
    for(i=0;i<12;i++) {
while ( (*portInputRegister(port) & bit) == stateMask)
   width[i]++;
    Serial.println("3");

io avevo preso questo codice già fatto che funzionava egregiamente: in realtà non conosco bene il significato delle istruzioni all'interno della funzione int ReadUTI (moltre istruzioni sono prese dalla libreria pins_arduino.h), quindi non capisco bene perchè si blocca. ripeto: ha sempre funzionato bene, quantomento mi ha sempre stampato a video il valore delle resistenze (anche se sballate). non riesco a capire se sono partite le pt100 (ma non credo), se è partito l'integrato (possibile?) o arduino(dubito, perchè con altri programmi che ho funziona bene).

qualcuno mi può dare una mano?


EDIT: ho fatto una prova con un multimetro a misurare le resistenze delle pt100 (con tutto il circuito collegato allo smartec uti e alimentato): tutte e le tre sonde mi danno un valore di circa 106.5ohm, che corrisponde a circa  16.7 gradi celsius (compatibile con la temperatura attuale in camera mia).

quindi sembra che l'integrato funzioni. a questo punto c'è qualcosa di sbagliato nel codice: ora che ci penso un mesetto fa avevo ancora una versione vecchia dell'ide di arduino: ho provato a installare quelle vecchie ma ho sempre lo stesso problema. devo trovare un codice alternativo da far girare, ma non ho idea di come modificarlo.
24  Forum 2005-2010 (read only) / Italiano / Re: relay e transistor on: September 03, 2010, 06:05:07 am
grazie mille:

un'ultima cosa: per curiosità, con l'alimentazione da 5volt dell'arduino quanti relay posso comandare in contemporanea?
25  Forum 2005-2010 (read only) / Italiano / Re: relay e transistor on: September 03, 2010, 05:24:03 am
grazie per i consigli.

allora ho provato a modificare un po' e alla fine ce l'ho fatta: ho cambiato la resistenza da 10k ohm con una da 3kohm (seguendo questo datasheet http://javascript:openreq('http://www.datasheetcatalog.org/datasheet/motorola/2N2369.pdf') e funziona, però non so se va bene la resistenza che ho messo. a lungo andare può succedere qualcosa di sgradevole?
26  Forum 2005-2010 (read only) / Italiano / relay e transistor on: September 02, 2010, 02:55:26 pm
ciao a tutti.

ho un problema: sto facendo dei circuiti come questo http://birraio.altervista.org/img034.jpg, utilizzando il transistor p2n2222a. oggi sono andato da un venditore di componenti elettronici per prendere altri transistor come quelli, ma non li aveva e me na ha dati altri che però ha detto che erano uguali. fatto sta che con il circuito del link sopra quei transistor non fuzionano. sulla parte alta del transistor c'è scritto "c2n2369". purtroppo non riesco a trovare il datasheet di questo transistor. devo cambiare qualcosa? resistenza o altro? purtroppo ne capisco ben poco di queste cose, e senza datasheet è un po dura..

qualcuno può darmi una mano?
27  Forum 2005-2010 (read only) / Italiano / Re: Sonda NTC o PTC per controllo temperatura liquidi. on: July 29, 2010, 06:23:43 pm
mh..eheh non ci arrivo comunque smiley-grin

comunque guardando un po' in giro ho trovato un topic di un tizio che con arduino ha utilizzato quest'aggeggio che pare proprio fare al caso mio

http://www.smartec.nl/pdf/DSUTI.pdf


costo 5 euro. l'ho ordinato: se è veramente così semplice utilizzarlo molti meno grattacapi smiley-grin
28  Forum 2005-2010 (read only) / Italiano / Re: Sonda NTC o PTC per controllo temperatura liquidi. on: July 28, 2010, 08:52:22 am
oggi ci ho smanettato su ancora un po.

allora riprendendo questo esempio, ho utilizzato invece che una resistenza da 10k, tre resistenze da 330ohm ciascuna collegate in serie: il multimetro mi calcola la resistenza equivalente di queste tre resistenze come 970 ohm.
a questo punto ho modificato il codice in questo modo, e ho ricavato finalmente qualcosa di utile. il codice è questo
Code:
//Schematic:
// [Ground] ---- [1k-Resister] -------|------- [Thermistor (pt100)] ---- [+5v]
//                                    |
//                               Analog Pin 0

int ptPin = 0;


double getTemp(int voltage) {
      float resistance = 0;
      float temp = 0;
      int adc = voltage;
      
      resistance = 993280;
      resistance = resistance / adc;
      resistance = resistance - 970;
      
      temp = resistance - 100;
      temp = temp / 0.385;
      
      Serial.print("Analogic read: ");
      Serial.print(adc);
      Serial.print(" Resistance: ");
      Serial.print(resistance);
      Serial.print(" Temperature: ");
      Serial.println(temp);
      
      return temp;
}

void setup() {
      Serial.begin(9600);
}

void loop() {
      getTemp(analogRead(ptPin));
      delay(1000);
}


più o meno riesco a misurare la temperatura (nella stanza ci sono circa 25gradi e mi calcola 25 gradi, quindi piu o meno ci siamo). inoltre, ho preso un bicchiedere d'acqua con dentro tanto tanto ghiaccio, e la resistenza era di circa 102 ohm, mentre un normale termometro mi segnava la temperatura a 6°, quindi anche qui più o meno ci siamo.

domandone: come faccio a questo punto a migliorare la precisione? nel senso che adesso, appena la lettura analogica del pin 0 mi varia di 1 (per esempio da 919 a 920), la resistenza mi varia da 110.83 a 109.65, e di conseguenza la temperatura mi sballa di 3 gradi. è possibile migliorare la precisione? credo di si ma non ho assolutamente idea di come fare...
29  Forum 2005-2010 (read only) / Italiano / Re: Sonda NTC o PTC per controllo temperatura liquidi. on: July 27, 2010, 10:45:34 am
ieri mi sono arrivati i sensori di temperatura. è una pt100 a 2 fili (uno rosso e uno bianco)..ma come faccio a leggere un valore corretto? mi spiego meglio..

ho collegato come l'esempio http://www.arduino.cc/playground/ComponentLib/Thermistor2 ma la lettura sul pin analogico 0 mi da sempre 1023. è due gg che cerco su internet e qui sul forum ma non ci capisco niente di ste cose smiley-lol

insomma dovrei riuscire in qualche modo a leggere la temperatura in gradi da questa sonda, ma nn ho assolutamente idea di come fare. leggevo in questo post che bisogna utilizzare un ponte di wheatstone..ma per me è arabo.qualcuno mi puo dare una mano o qualche input? ve ne sarei molto grato
30  Forum 2005-2010 (read only) / Italiano / Re: Sonda NTC o PTC per controllo temperatura liquidi. on: July 05, 2010, 01:38:24 pm
cercavo semplicemente rtd...grazie mille
Pages: 1 [2] 3