Buenas he intentado poder lograr que al momento de energizar el arduino ( obviamente después del boot) las salidas digitales que designé sean high por defecto,esto quiere decir que mis teles de control de activan al recibir un pulso negativo. Por lo cual para evitar un resultado desastroso con mi aplicación, la cual pone en funcionamiento puertas y luces,es necesario que arduino deje en high todas las salidas.
Estoy usando un arduino nano con un un adicional de Bluetooth.
Lo que he intentado hasta el momento es lo siguiente:
#include <SoftwareSerial.h>
#include <Servo.h>
Servo servo1;
SoftwareSerial blue(0, 1); //Crea conexion al bluetooth - PIN 2 a TX y PIN 3 a RX
char NOMBRE[21] = "CAJON-ELVIS"; // Nombre de 20 caracteres maximo
char BPS = '4'; // 1=1200 , 2=2400, 3=4800, 4=9600, 5=19200, 6=38400, 7=57600, 8=115200
char PASS[5] = "1234"; // PIN O CLAVE de 4 caracteres numericos
int estado=0;
int retardo=100;
int analogo=0;
void setup()
{
servo1.attach(4);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
pinMode(4,OUTPUT);
pinMode(3,OUTPUT);
blue.begin(9600); // inicialmente la comunicacion serial a 9600 Baudios (velocidad de fabrica)
blue.print("AT"); // Inicializa comando AT
delay(100);
blue.print("AT+NAME"); // Configura el nuevo nombre
blue.print(NOMBRE);
delay(100); // espera 1 segundo
blue.print("AT+BAUD"); // Configura la nueva velocidad
blue.print(BPS);
delay(100);
blue.print("AT+PIN"); // Configura el nuevo PIN
blue.print(PASS);
delay(100);
}
void loop()
{
if(blue.available()>0){ // Si el puerto serie esta habilitadp
estado = blue.read(); // Lee lo que llega por el puerto Serie
}
else {
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,HIGH);
digitalWrite(9,HIGH);
digitalWrite(8,HIGH);
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
}
if(estado== 'a'){ // on/off de los pin 13 al pin 6
digitalWrite(13,HIGH);
}
if(estado== 'b' ){
digitalWrite(13,LOW);
}
if(estado== 'c'){
digitalWrite(12,LOW);
delay(5000);
digitalWrite(12,HIGH);
}
if(estado== 'd' ){
digitalWrite(12,HIGH);
}
if(estado== 'e'){
digitalWrite(11,LOW);
}
if(estado== 'f' ){
digitalWrite(11,HIGH);
}
if(estado== 'g' ){
digitalWrite(10,LOW);
}
if(estado== 'h' ){
digitalWrite(10,HIGH);
}
if(estado== 'i' ){
digitalWrite(9,LOW);
}
if(estado== 'j' ){
digitalWrite(9,HIGH);
}
if(estado== 'k' ){
digitalWrite(8,LOW);
}
if(estado== 'l' ){
digitalWrite(8,HIGH);
}
if(estado== 'm' ){
digitalWrite(7,LOW);
}
if(estado== 'n' ){
digitalWrite(7,HIGH);
}
if(estado== 'o' ){
digitalWrite(6,LOW);
}
if(estado== 'p' ){
digitalWrite(6,HIGH);
}
if(estado== 'A' ){ // Movimiento del SERVO
servo1.write(0);
}
if(estado== 'B' ){
servo1.write(90);
}
if(estado== 'C' ){
servo1.write(180);
}
if(estado=='s'){ // Dimer 1 conectado al pin 5
analogWrite(5,0);
}
if(estado=='t'){
analogWrite(5,3);
}
if(estado=='u'){
analogWrite(5,8);
}
if(estado=='v'){
analogWrite(5,20);
}
if(estado=='w'){
analogWrite(5,30);
}
if(estado=='x'){
analogWrite(5,60);
}
if(estado=='y'){
analogWrite(5,125);
}
if(estado=='z'){
analogWrite(5,255);
}
if(estado=='1'){ // Dimer 2 conectado al pin 3
analogWrite(3,0);
}
if(estado=='2'){
analogWrite(3,3);
}
if(estado=='3'){
analogWrite(3,8);
}
if(estado=='4'){
analogWrite(3,20);
}
if(estado=='5'){
analogWrite(3,30);
}
if(estado=='6'){
analogWrite(3,60);
}
if(estado=='7'){
analogWrite(3,125);
}
if(estado=='8'){
analogWrite(3,255);
}
if(estado=='q'){ // envia el valor leido del puerto analogo A0
analogo=analogRead(A1);
Serial.print(analogo);
Serial.println("°C");
delay (retardo);
estado=0;
}
delay(retardo);
}
tambien intente de esta forma:
#include <SoftwareSerial.h>
#include <Servo.h>
Servo servo1;
SoftwareSerial blue(0, 1); //Crea conexion al bluetooth - PIN 2 a TX y PIN 3 a RX
char NOMBRE[21] = "CAJON-ELVIS"; // Nombre de 20 caracteres maximo
char BPS = '4'; // 1=1200 , 2=2400, 3=4800, 4=9600, 5=19200, 6=38400, 7=57600, 8=115200
char PASS[5] = "1234"; // PIN O CLAVE de 4 caracteres numericos
int estado=0;
int retardo=100;
int analogo=0;
void setup()
{
servo1.attach(4);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
pinMode(4,OUTPUT);
pinMode(3,OUTPUT);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,HIGH);
digitalWrite(9,HIGH);
digitalWrite(8,HIGH);
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
blue.begin(9600); // inicialmente la comunicacion serial a 9600 Baudios (velocidad de fabrica)
blue.print("AT"); // Inicializa comando AT
delay(100);
blue.print("AT+NAME"); // Configura el nuevo nombre
blue.print(NOMBRE);
delay(100); // espera 1 segundo
blue.print("AT+BAUD"); // Configura la nueva velocidad
blue.print(BPS);
delay(100);
blue.print("AT+PIN"); // Configura el nuevo PIN
blue.print(PASS);
delay(100);
}
void loop()
{
if(blue.available()>0){ // Si el puerto serie esta habilitadp
estado = blue.read(); // Lee lo que llega por el puerto Serie
}
if(estado== 'a'){ // on/off de los pin 13 al pin 6
digitalWrite(13,HIGH);
}
if(estado== 'b' ){
digitalWrite(13,LOW);
}
if(estado== 'c'){
digitalWrite(12,LOW);
delay(5000);
digitalWrite(12,HIGH);
}
if(estado== 'd' ){
digitalWrite(12,HIGH);
}
if(estado== 'e'){
digitalWrite(11,LOW);
}
if(estado== 'f' ){
digitalWrite(11,HIGH);
}
if(estado== 'g' ){
digitalWrite(10,LOW);
}
if(estado== 'h' ){
digitalWrite(10,HIGH);
}
if(estado== 'i' ){
digitalWrite(9,LOW);
}
if(estado== 'j' ){
digitalWrite(9,HIGH);
}
if(estado== 'k' ){
digitalWrite(8,LOW);
}
if(estado== 'l' ){
digitalWrite(8,HIGH);
}
if(estado== 'm' ){
digitalWrite(7,LOW);
}
if(estado== 'n' ){
digitalWrite(7,HIGH);
}
if(estado== 'o' ){
digitalWrite(6,LOW);
}
if(estado== 'p' ){
digitalWrite(6,HIGH);
}
if(estado== 'A' ){ // Movimiento del SERVO
servo1.write(0);
}
if(estado== 'B' ){
servo1.write(90);
}
if(estado== 'C' ){
servo1.write(180);
}
if(estado=='s'){ // Dimer 1 conectado al pin 5
analogWrite(5,0);
}
if(estado=='t'){
analogWrite(5,3);
}
if(estado=='u'){
analogWrite(5,8);
}
if(estado=='v'){
analogWrite(5,20);
}
if(estado=='w'){
analogWrite(5,30);
}
if(estado=='x'){
analogWrite(5,60);
}
if(estado=='y'){
analogWrite(5,125);
}
if(estado=='z'){
analogWrite(5,255);
}
if(estado=='1'){ // Dimer 2 conectado al pin 3
analogWrite(3,0);
}
if(estado=='2'){
analogWrite(3,3);
}
if(estado=='3'){
analogWrite(3,8);
}
if(estado=='4'){
analogWrite(3,20);
}
if(estado=='5'){
analogWrite(3,30);
}
if(estado=='6'){
analogWrite(3,60);
}
if(estado=='7'){
analogWrite(3,125);
}
if(estado=='8'){
analogWrite(3,255);
}
if(estado=='q'){ // envia el valor leido del puerto analogo A0
analogo=analogRead(A1);
Serial.print(analogo);
Serial.println("°C");
delay (retardo);
estado=0;
}
delay(retardo);
}