Problema con guardar datos en una Micro SD

Hola amigos,tengo un problema. Al intentar guardar los datos obtenidos de un sensor infrarrojo.
Ya que al realizar un loop solo cuenta pero no guarda los datos rescatados.
Estoy usando el arduino uno con la placa M2M Shield, esta ultima tiene el slot para la micro SD

//Se incluye la librería <SD.h>
#include <SD.h>
#include <SPI.h>

const int analogInPin = A1; // Pin del Fototransistor
const int OutPin = 13;      // Pin para el led indicador
 
 char *cuenta;
 
int sensorValue = 0;        
int contador = 0;           
boolean estado = false; // Variable de estado

File Archivo;
 
void setup() {
  // Inicializamos la comunicacion serial a 9600 bps:
  Serial.begin(9600); 
  pinMode(OutPin, OUTPUT);
  Serial.println("Se inicia el programa");
  
  pinMode(4,OUTPUT);
  
  if (!SD.begin(10)){
    
    Serial.println("Se ha producido un fallo al iniciar la comunicación");
    return;
  }
  Serial.println("Se ha iniciado la comunicación correctamente");
  
   Archivo.println("numero de personas"+contador);
    
    //Se cierra el archivo para almacenar los datos.
    Archivo.close();
    
    
    Archivo = SD.open("datos.txt");
  
  //Si el archivo se ha abierto correctamente se muestran los datos.
  if (Archivo){
    
    //Se muestra por el monitor que la información que va a aparecer es la del
    //archivo datos.txt.
    Serial.println("Información contenida en datos.txt:");
    
    //Se implementa un bucle que recorrerá el archivo hasta que no encuentre más
    //información (Archivo.available()==FALSE).
    while (Archivo.available()){
      
     //Se escribe la información que ha sido leída del archivo.
     Serial.write(Archivo.read());
    }
    
    
    //Si todo ha ido bien cierra el archivo para no perder datos.
    Archivo.close();
  }

    
    
  
}
 
void loop() {
 
  sensorValue = analogRead(analogInPin); 
   

  
 if(sensorValue == HIGH && estado == false)
  {
    
   digitalWrite(OutPin, HIGH);
   contador = contador +1;
   estado = true;
   while(contador<0){
   cuenta[contador];
   char *gcuenta;
   strcpy(gcuenta,cuenta);
   Archivo.println(cuenta);
   }
   
   
    
    //Se escribe información en el documento de texto datos.txt.
   
    //Se muestra por el monitor que los datos se han almacenado correctamente.
   // Serial.println("Todos los datos fueron almacenados");
  
   
   Serial.print("Numero de personas " );                       
  Serial.println(contador);  

Serial.println(cuenta);
  
  
   }
  else if (sensorValue == LOW &&  estado == true)
  {
    digitalWrite(OutPin, LOW);
    estado = false;
   
    
  }
   

 delay(10);                     
}

En el loop, no hay ningún comando para que grabe nada en la sd.

Más información en:

http://www.arduino.cc/en/Reference/SD

Y en los ejemplos que vienen con el ide.

No lo he mirado muy a fondo, pero creo que en el loop, al contrario que en el setup, no has abierto el archivo.

ademas en el setup parece que has abierto el archivo despues de escribir en el.