Show Posts
|
|
Pages: [1]
|
|
3
|
Forum 2005-2010 (read only) / Development / Re: Frequency Counter
|
on: December 28, 2009, 02:03:52 pm
|
Hey! You are magic! At least it compiles. But still no results: only the first “Frequency Counter” printout and nothing else. I connected a 4.5V square wave at pin 5 (protected by a 1.5KOhm). I modified the sketch adding some check point (A,B,C) to see where it stops. It just prints a fast serie of “C” as if the parameter “frq” doesn't exist (or empty). And b.t.w. where is declared that pin 5 is an input? What do you suggest? Is something I can do the get it running? Thanks for your patient support.  #include <FreqCounter.h>
void setup() { Serial.begin(57600); // connect to the serial port Serial.println("Frequency Counter"); }
long int frq; void loop() {
FreqCounter::f_comp= 8; // Set compensation to 12 Serial.println("A"); FreqCounter::start(1000); // Start counting with gatetime of 100ms Serial.println("B"); while (FreqCounter::f_ready == 0) // wait until counter ready Serial.println("C"); frq=FreqCounter::f_freq; // read result Serial.println(frq); // print result delay(20); }
|
|
|
|
|
4
|
Forum 2005-2010 (read only) / Development / Re: Frequency Counter
|
on: December 28, 2009, 11:08:59 am
|
I Downloaded the libraries from: http://interface.khm.de/index.php/labor/experimente/arduino-frequency-counter-library/And this is the sketch I just downloaded from Marnaw as it is:
#include <FreqCounter.h>
void setup() { Serial.begin(57600); // connect to the serial port Serial.println("Frequency Counter"); }
long int frq; Void loop() {
FreqCounter::f_comp= 8; // Set compensation to 12 FreqCounter::start(100); // Start counting with gatetime of 100ms while (FreqCounter::f_ready == 0) // wait until counter ready frq=FreqCounter::f_freq; // read result Serial.println(frq); // print result delay(20); }
Anything wrong ? Thank you
|
|
|
|
|
5
|
Forum 2005-2010 (read only) / Development / Frequency Counter
|
on: December 27, 2009, 01:55:15 pm
|
|
Hi everybody: I'm new to Arduino and programming, but reasonably good in electronics. I' m interested in the frequency counter of MARNAW, so I downloaded the two source code Zip files in both , the sketchbook and into Arduino-0017,/hardware/libreries ( to be on the safe side). The I just copied the original Marnaw's Example Program into my sketchbook . But it didn't work: as soon as I try to compile it, I get the following message: “ Error: 'Void' does not name a type” on line 2. :o I'm think I'm doing something wrong, but what? Can someone help me?
Thank you
|
|
|
|
|
6
|
Forum 2005-2010 (read only) / Italiano / Re: Circuiti stampati: guida pratica al disastro :)
|
on: January 17, 2010, 04:36:13 pm
|
La mia esperienza in qualche anno (ho fatto circa 150 PCB, diversi dei quali per microonde e componenti SMD) è un pò diversa. Molti errori mi hanno insegnato parecchio. Se posso uso piastre doppia faccia presensibilizzata, è meglio perchè lo starto sensibile è uniforme e il risultato molto più costante. Se però devo usre il teflon o altro substrato uso lo spray sensibilizzante asciugato a 70° per 20'  . meglio che asciugato 24h a temp. ambiente. Per i master uso i lucidi per inkjet, dopo aver provato quelli per fotocopiatrice + laserjet anche in doppio strato(no buono!). E' vero che è costoso, ma ritaglio dal foglio solo la parte che uso.  Ho provato il trasferimento con il ferro da stiro con risultati molto scadenti, ma mi sarebbe piaciuto avere successo per poter usare questo metodo anche per i pannelli dei miei strumenti home made.  Mi sono costruito 2 bromografi: il secondo dei quali piccolo e recuperato da un cancellatore di EPROM. Uso più spesso il più piccolo: le mie board raramente superano i 10X15 cm. A casa mia, dopo qualche disastro colorato con il cloruro ferrico, questo è stato bandito con minacce fisiche. Ed era anche lentissimo... Ho optato per l'acido nitrico diluito 20%: e vorrei farvelo conoscere meglio. E' velocissimo (7' max 10') e trasparente (quasi). Non ha quasi odore anche se tengo sempre la finestr apertissima. Attacca solo il metallo e non la pastica, per cui uso gli stessi accessori di plastica che usavo quando sviluppavo foto. Le incisioni vengono molto precise anche per le tracce più sottili (al minimo faccio 0,25mm), ma sempre con attenzione. :o Non attacca le mani ache se evito di farci gli sciacqui: uso guanti di gomma ma cerco di non toccarlo e le manovre nell'acido le faccio con una forchetta di plastica. 1 lito di Acdo Nitrico mi dura (diluito di volta in volta) da qualche anno. Dalla stampa del lucido al PCB finito impiego circa 1 ora e ne sono molto soddisfatto.  In sostanza non credo che esista il metodo giusto e tutti gli altri sbagliati. Ogniuno di noi, con le ue necessità. sviluppa la sua esperienza, la padroneggia e produce dei PCB che lo soddisfano. Comunque non sono mai riuscito a salvarmi dalla regola del "3"; la board definitiva è sempre la terza: la prima ha sempre qualche difetto, la seconda viene ottimizzata e la terza è OK. ;D Buon divertimento 5ala
|
|
|
|
|
7
|
Forum 2005-2010 (read only) / Italiano / Re: MOSFET
|
on: January 17, 2010, 01:39:42 pm
|
|
Se non mi sbaglio si tratta di un transistor NPN e non un MOSFET ( sono piuttosto diversi). La resistenza da 1K è, in questo caso, soprattutto una protezione affinchè nella Base ( e non nel gate) del tr non ci passi trppa corrente, che lo brucerebbe facilmente( la base è piuttosto delicata), ma lasciando passare abbastanza corrente da illuminare i LED. In teoria quella resistenza si calcola in base alla corrente che deve passare nel collettore del tr. : in questo caso la somma delle correnti dei LED. Il modo di calcolarla è questo: la corrente che deve scorrere nella base deve essere uguale alla corrente di collettore divisa per il beta del tr, che ha molti nomi diversi (guadagno di gorrente, hfe, etc) e che varia da 40 a 300 o più a seconda del tr. Mi spiace essere molto conciso, ma il discorso sarebbe lungo anche se interessante. 5ala
|
|
|
|
|
8
|
Forum 2005-2010 (read only) / Italiano / Re: Disegnare schema PCB
|
on: January 17, 2010, 01:11:38 pm
|
Ciao a tutti: è qualche anno che faccio PCB con master fotografici ed ho fatto molti errori nel passato (da cui ho imparato molto) e provato diversi SW. Personalmente, visto che faccio parecchi PCB, ho comperato il SW di Labcenter PROLITE . Ma per iniziare non è necessario. La stragrande maggioranza dei miei amici hobbisti usa ORCAD versione "student" (gratis) e ne sono sufficientemente soddisfatti. Buon divertimento 5ala 
|
|
|
|
|
9
|
Forum 2005-2010 (read only) / Italiano / GPS
|
on: January 17, 2010, 12:51:42 pm
|
Ciao a tutti: non sono certo un esperto di Arduino e sto cercando di far funzionare il programma di Tutorial GPS allegato senza risultato. Ho un ricevitore GPS che funziona bene per altra applicazione (Motorola Oncore) con protocollo NMEA. Il segnale, ridotto a 5V, arriva al pin rx: lo vedo all'oscilloscopio. Compiling OK; Uploading OK. Ma nessun segno di vita. Penso si arresti al primo "if" Ma quando cerco di fare il "Copy for forum" dello sketch si scatenano una serie di errori Java e questo è il risultato... :-[ Grazie ancora per il supporto. /* VEDI PLAYGROUND - GPS- Example code for connecting a Parallax GPS module to the Arduino Igor Gonz[ch65533]lez Mart[ch65533]n. 05-04-2007 igor.gonzalez.martin@gmail.com English translation by djmatic 19-05-2007 Listen for the $GPRMC string and extract the GPS location data from this. Display the result in the Arduino's serial monitor. */ #include <string.h> #include <ctype.h> int ledPin = 13; // LED test pin int rxPin = 6; // RX PIN int txPin = 7; // TX TX int byteGPS=-1; char linea[300] = ""; char comandoGPR[7] = "$GPRMC"; int cont=0; int bien=0; int conta=0; int indices[13]; void setup() { pinMode(ledPin, OUTPUT); // Initialize LED pin pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); Serial.begin(4800); for (int i=0;i<300;i++){ // Initialize a buffer for received data linea =' '; } }
void loop() { digitalWrite(ledPin, HIGH); byteGPS=Serial.read(); // Read a byte of the serial port if (byteGPS == -1) { // See if the port is empty yet delay(1000); } else { linea[conta]=byteGPS; // If there is serial port data, it is put in the buffer conta++; //printByte(byteGPS); // statement no more valida replaced by the following Serial.print(byteGPS); if (byteGPS==13){ // If the received byte is = to 13, end of transmission digitalWrite(ledPin, LOW); cont=0; bien=0; for (int i=1;i<7;i++){ // Verifies if the received command starts with $GPR if (linea==comandoGPR[i-1]){ bien++; } } if(bien==6){ // If yes, continue and process the data for (int i=0;i<300;i++){ if (linea==','){ // check for the position of the "," separator indices[cont]=i; cont++; } if (linea=='*'){ // ... and the "*" indices[12]=i; cont++; } } Serial.println(""); // ... and write to the serial port Serial.println(""); Serial.println("---------------"); for (int i=0;i<12;i++){ switch(i){ case 0 :Serial.print("Time in UTC (HhMmSs): ");break; case 1 :Serial.print("Status (A=OK,V=KO): ");break; case 2 :Serial.print("Latitude: ");break; case 3 :Serial.print("Direction (N/S): ");break; case 4 :Serial.print("Longitude: ");break; case 5 :Serial.print("Direction (E/W): ");break; case 6 :Serial.print("Velocity in knots: ");break; case 7 :Serial.print("Heading in degrees: ");break; case 8 :Serial.print("Date UTC (DdMmAa): ");break; case 9 :Serial.print("Magnetic degrees: ");break; case 10 :Serial.print("(E/W): ");break; case 11 :Serial.print("Mode: ");break; case 12 :Serial.print("Checksum: ");break; } for (int j=indices;j<(indices[i+1]-1);j++){ Serial.print(linea[j+1]); } Serial.println(""); } Serial.println("---------------"); } conta=0; // Reset the buffer for (int i=0;i<300;i++){ // linea=' '; } } } }
/*If the above code works, in the serial monitor window you should see the following:
Valid position (status is A):
... ...
$GPGGA,154653,4428.2011,N,00440.5161,W,0,00,,-00044.7,M,051.6,M,,*6C $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSV,3,1,10,02,50,290,003,10,25,24,045,35,27,56,145,00,,,,,,,,*78 $GPRMC,154653,V,4428.2011,N,00440.5161,W,000.5,342.8,050407,,,N*7F
--------------- Time in UTC (HhMmSs): 154653 Status (A=OK,V=KO): V Latitude: 4428.2011 Direction (N/S): N Longitude: 00440.5161 Direction (E/W): W Speed in knots: 000.5 Direction in degrees: 342.8 Date in UTC (DdMmAa): 050407 Magnetic variation: Variation (E/W): Mode: A
---------------
... ...
B: Valid positon: The GPS light shines steadily.
... ...
$GPGGA,154654,4428.2011,N,00440.5161,W,0,00,,-00044.7,M,051.6,M,,*6B $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSV,3,1,10,02,50,290,00 $GPGGA,154655,4328.1874,N,00340.5185,W,1,03,08.5,-00044.7,M,051.6,M,,*79 $GPGSA,A,2,13,23,25,,,,,,,,,,08.5,08.5,00.9*0E $GPGSV,3,1,10,02,50,290,26,04,60,210,26,08,33,173,29,10,21,296,00*7E $GPGSV,3,2,10,13,58,044,34,16,03,035,00,20,02,109,00,23,26,057,34*7B $GPGSV,3,3,10,25,24,045,35,27,56,145,27,,,,,,,,*7D $GPRMC,154655,A,4428.1874,N,00440.5185,W,000.7,000.0,050407,,,A*6C
--------------- Time in UTC (HhMmSs): 154655 Status (A=OK,V=KO): A Latitude: 4428.1874 Direction (N/S): N Longitude: 00440.5185 Direction (E/W): W Speed in Knots: 000.7 Heading in degrees: 000.0 Date in UTC (DdMmAa): 050407 Magnetic variation: Variation (E/W): Mode: A ---------------
... ... */
|
|
|
|
|