Errores avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x45 avrdud

Hola que tal, soy algo nuevo en arduino y tengo un proyecto escolar de una puerta que se abre por medio de un KeyPad y una aplicacion bluetooth, que tambien tiene un sensor de temperatura.

Si pueden ayudarme estaria muy agradecido. Estos son los errores que me da:

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x45
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xfc

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x45

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x10
avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0xfc
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x45
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x45

y el codigo

// LIBRERIAS
#include<Keypad.h>  
#include <LiquidCrystal.h>
#include<Servo.h>
Servo servo;
#define ledV 5   //green led
#define ledR 6   // red led
#define buzzer 4


LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
//Lcd connections LiquidCrystal(rs, enable, d4, d5, d6, d7)
// ( vss:GND ,VDD:+5V,VO:POT ,RW:GND,A:+5V,K:GND)

const byte filas = 4;  //rows
const byte columnas = 4;  //columbs
char pass[4] = {'*', '#', 'C', '9'}; //Contraseña por defecto.
char pass1[4];  //Contraseña escrita
char key;   //char key
int i = 0;
char keyPad[4][4] = {  //Arreglo 2 dimensiones del keypad
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};

byte filasPin[4] = {A0, A1, A2, A3};  //Filas
byte columnasPin[4] = {A4, A5, 3, 2};    //Columnas

Keypad keyPad0 = Keypad(makeKeymap(keyPad), filasPin, columnasPin, 4, 4);  // Codigo de la libreria Keypad. Creamos un mapa del keypad usando filas y columnas

// CARACTERES CREADOS - BARRA DE CARGA

byte customChar9[8] = {  0b11111,  0b11111,  0b11111,  0b11111,  0b11111,  0b11111,  0b11111,  0b11111};
byte customChar8[8] = {  0b11110,  0b11110,  0b11110,  0b11110,  0b11110,  0b11110,  0b11110,  0b11110};
byte customChar7[8] = {  0b11100,  0b11100,  0b11100,  0b11100,  0b11100,  0b11100,  0b11100,  0b11100};
byte customChar6[8] = {  0b11000,  0b11000,  0b11000,  0b11000,  0b11000,  0b11000,  0b11000,  0b11000};
byte customChar5[8] = {  0b10000,  0b10000,  0b10000,  0b10000,  0b10000,  0b10000,  0b10000,  0b10000};
byte customChar4[8] = {  0b00001,  0b00011,  0b00011,  0b00111,  0b00111,  0b01111,  0b01111,  0b11111};
byte customChar3[8] = {  0b00000,  0b00010,  0b00010,  0b00110,  0b00110,  0b01110,  0b01110,  0b11110};
byte customChar2[8] = {  0b00000,  0b00000,  0b00000,  0b00100,  0b00100,  0b01100,  0b01100,  0b11100};
byte customChar1[8] = {  0b00000,  0b00000,  0b00000,  0b00000,  0b00000,  0b01000,  0b01000,  0b11000};
byte customChar0[8] = {  0b00000,  0b00000,  0b00000,  0b00000,  0b00000,  0b00000,  0b00000,  0b10000};



void setup() {
// Declaraciones por defecto
  servo.attach(13);
  servo.write(0);
  pinMode(ledV, OUTPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(ledR, OUTPUT);
  lcd.createChar(0, customChar0);
  lcd.createChar(1, customChar1);
  lcd.createChar(2, customChar2);
  lcd.createChar(3, customChar3);
  lcd.createChar(4, customChar4);
  lcd.createChar(5, customChar5);
  lcd.createChar(6, customChar6);
  lcd.createChar(7, customChar7);
  lcd.createChar(8, customChar8);
  lcd.createChar(9, customChar9);
  lcd.begin(16, 2); // LCD BEGAN
  lcd.clear(); 
  lcd.clear();
  lcd.setCursor(1, 0);
  lcd.print("CARGANDO SISTEMA");
// EFECTO DE CARGA
  for (int i = 1; i <= 13; i++){
    for (int k = 6; k <= 9; k++){
      lcd.setCursor(i, 1); lcd.write((uint8_t)k);
      delay(50);
    }
  }
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("SIS. SEGURIDAD");
  lcd.setCursor(0, 1);
  lcd.print("ITE");
  delay(2000);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("CLAVE:");
  Serial.begin(9600);
  Serial.println("BIENVENIDO");   //WELCOME
  delay(2000);
  Serial.println("CLAVE");
}
// Sensor de temperatura void
float lecturaSensor (){
  float valorSensor = analogRead(A5);
  float  tempTotal =(valorSensor/1023*5/0.01);
  Serial.print(tempTotal);
  return tempTotal;
  delay(500);
}
void loop() {

lecturaSensor ();


  digitalWrite(ledV, LOW);
  digitalWrite(ledR, LOW);
  key = keyPad0.getKey();  //getKey toma cada caracter pulsado en el keypad

  if (key)
  {
    pass1[i++] = key;  //Cada que precionamos el arreglo ira aumentando [1],[2]... para aceptar solo un numero de caracteres.

    lcd.setCursor(i, 1);
    lcd.print("*");   // Oculta contraseña
    digitalWrite(buzzer, HIGH);
    delay(100);
    digitalWrite(buzzer, LOW); // Zumbador al precionar teclas.
  }

  if (i == 4)
  { delay(200);
    char pass[4] = {'*', '#', 'C', '9'}; //default password u should write here like that

    if ((strncmp(pass1, pass, 4) == 0))   //comparing these passwords if first 4 element correct then  process will be as follows
    {
      lcd.clear();
      lcd.setCursor(0, 0);
      servo.write(90);
      lcd.print("CLAVE CORRECTA"); //password correct
      digitalWrite(ledV, HIGH);
      digitalWrite(ledR, LOW);
      digitalWrite(buzzer, HIGH);
      delay(100);
      digitalWrite(buzzer, LOW);
      delay(100);
      digitalWrite(buzzer, HIGH);
      delay(100);
      digitalWrite(buzzer, LOW);
      delay(5000);
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("CLAVE:");  //password :
      i = 0;
    }

    else
    {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("CLAVE INCORRECTA");  //wrong password
      digitalWrite(ledV, LOW);
      digitalWrite(ledR, HIGH);
      digitalWrite(buzzer, HIGH);
      delay(1000);
      digitalWrite(buzzer, LOW);
      delay(1000);
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("CLAVE"); //password :
        Serial.println("CLAVE");
      i = 0;
      servo.write(0);
    }
  }

  /// ANDROID LOCK
    if(Serial.available()>0)  { 
    char Received = Serial.read();
    if (Received == 'c'){
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("CERRADO");
      digitalWrite(ledV,LOW);
      digitalWrite(ledR,HIGH);
      digitalWrite(buzzer, HIGH);
      delay(1000);
      digitalWrite(buzzer, LOW);
      delay(1000);
      servo.write(0);
      lcd.clear();  
      lcd.setCursor(0,0);
      lcd.print("CLAVE:");  
    }
    if (Received == 'o')  {
      lcd.clear();
      servo.write(90);
      lcd.setCursor(0,0);
      lcd.print("ABIERTO");
      digitalWrite(ledV, HIGH);
      digitalWrite(ledR, LOW);
      digitalWrite(buzzer, HIGH);
      delay(100);
      digitalWrite(buzzer, LOW);
      delay(100);
      digitalWrite(buzzer, HIGH);
      delay(100);
      digitalWrite(buzzer, LOW);
      delay(5000);
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("CLAVE:");
      i = 0;
      }
 } 
}

caja_fuerte__esp_.ino (5.83 KB)

El puerto COM al que esta conectado tu Arduino coincide con lo seleccionado en el IDE?

Mira esta guia a ver si ayuda Arduino IDE: Configuración Inicial

surbyte: El puerto COM al que esta conectado tu Arduino coincide con lo seleccionado en el IDE?

Mira esta guia a ver si ayuda Arduino IDE: Configuración Inicial

Si, falto mencionar que el keypad y el servo si funciona, el principar problema es el Bluetooth. Quiero recibir 'c' de una aplicacion y cerrar, aparte de recibir datos del sensor de temp en la aplicacion

Primera tontería que tal vez no sea tu caso

#include <Keypad.h>  
#include <LiquidCrystal.h>
#include <Servo.h>

Tenias pegado los include con <

revisa!!!

Si estas usando un UNO entonces por lo que veo tienes conectado tu BT a los pines 0 y 1.
Revisa lo siguiente

  1. que gnd del Arduino este conectado al BT
  2. que RX o sea pin 0 este conectado a TX del BT
  3. que TX o sea pin 1 este conectado a RX del BT.

Ok, si pude resolver el error que daba antes parece que era algo de la conexion. Ya reconecte todo.

Ahora, tengo una gran duda, el keypad lo tengo conectado a los puertos analogicos (uso Arduino UNO), el display un zumbador y leds estan en los demas puertos, tengo todos los puertos ocupados,pero falta agregar el sensor es posible usar un solo puerto para dos cosas poder para agregar el sensor de temp?