Show Posts
Pages: [1]
1  Forum 2005-2010 (read only) / Development / Re: Frequency Counter on: January 15, 2010, 04:58:58 pm
Great CalcProgrammer1.
It works fine indeed !!! smiley-grin
You are a genius ! Next time I'll sweep an oil lamp I'll expect you to pop up  smiley-wink
2  Forum 2005-2010 (read only) / Development / Re: Frequency Counter on: December 29, 2009, 04:00:43 am
Yes: you are right: I'm using Arduino 328.
So, should I forget abpou that sketch ? smiley-sad
Can you suggest me a good Frq. Counter library/sketch for 328?

Thank you
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. smiley

Quote
#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:

Quote


#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' smiley-wink. 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. smiley
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. smiley-sad
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.  smiley-grin

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 smiley

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
 ---------------

 ...
 ...
*/
Pages: [1]