//Programa: Teste modulo cartao micro SD Arduino
//Autor: Arduino e Cia
#include <Servo.h>
#include <SPI.h>
#include <SD.h>
//Pino de conexão do pino CS do modulo
const int chipSelect = 10;
int pinoPot = A0;
Servo servo1;

void setup()
{
  pinMode(pinoPot, INPUT);
  servo1.attach(3); 
  Serial.begin(9600);
  Serial.println("Arduino e Cia - Teste de Modulo cartao micro SD");
  Serial.println("Inicializando cartao SD...");
  //Inicia a comunicacao com o modulo SD
  if (!SD.begin(chipSelect))
  {
    Serial.println("Falha ao acessar o cartao !");
    Serial.println("Verifique o cartao/conexoes e reinicie o Arduino...");
    return;
  }
  Serial.println("Cartao iniciado corretamente !");
  Serial.println();
}
void loop()
{
  //unsigned long currentMillis = millis();
  
  //Mostra os dados no Serial Monitor
  //Serial.print("Valor de tensão do pino A0: ");
  int valorPot = analogRead(pinoPot);
  //Serial.println(valorPot);
  int angulo=map(valorPot,0, 1023, 0, 180); 
  servo1.write(angulo); //Repassa o ângulo (escreve um valor para o servo) 
  delay(15); //Delay de 15ms para o servo alcançar a posição
  String dados = String(valorPot) + " " + String(angulo);
  Serial.println(dados);

  //Abre o arquivo datalog.txt
  File dataFile = SD.open("datalog.txt", FILE_WRITE);
  //Grava as informacoes no arquivo
  if (dataFile)
  {
    //dataFile.print("Valor de tensão do pino A0: ");
    dataFile.println(dados);
    //Fecha o arquivo
    dataFile.close();
  }
  //Exibe um erro se nao conseguir abrir o arquivo
  else
  {
    Serial.println("Erro ao abrir o arquivo datalog.txt");
  }
  delay(1000);
}