problemas con la programación.. AYUDAAA

hola todos:

espero me puedan ayudar… uso un Arduino nano y un modulo ds1302 quiero que muestre la fecha y la hora y el nombre del día en español, he buscado stech pero todos los que he encontrado me muestran prácticamente el mismo error.

ojala y me puedan ayudar… gracias

Arduino:1.8.12 (Windows 10), Tarjeta:“Arduino Nano, ATmega328P (Old Bootloader)”

sketch_dec27a:21:36: error: ‘Day’ in ‘class Time’ does not name a type

String dayAsString(const Time::Day day) {

^~~

C:\Users\Tavoo\Documents\Arduino\sketch_dec27a\sketch_dec27a.ino: In function ‘String {anonymous}::dayAsString(int)’:

sketch_dec27a:23:22: error: ‘kSunday’ is not a member of ‘Time’

case Time::kSunday: return “Domingo”;

^~~~~~~

sketch_dec27a:24:22: error: ‘kMonday’ is not a member of ‘Time’

case Time::kMonday: return “Lunes”;

^~~~~~~

sketch_dec27a:25:22: error: ‘kTuesday’ is not a member of ‘Time’

case Time::kTuesday: return “Martes”;

^~~~~~~~

sketch_dec27a:26:22: error: ‘kWednesday’ is not a member of ‘Time’

case Time::kWednesday: return “Miercoles”;

^~~~~~~~~~

sketch_dec27a:27:22: error: ‘kThursday’ is not a member of ‘Time’

case Time::kThursday: return “Jueves”;

^~~~~~~~~

sketch_dec27a:28:22: error: ‘kFriday’ is not a member of ‘Time’

case Time::kFriday: return “Viernes”;

^~~~~~~

sketch_dec27a:29:22: error: ‘kSaturday’ is not a member of ‘Time’

case Time::kSaturday: return “Sabado”;

^~~~~~~~~

C:\Users\Tavo\Documents\Arduino\sketch_dec27a\sketch_dec27a.ino: In function ‘void {anonymous}::printTime()’:

sketch_dec27a:35:20: error: ‘class DS1302’ has no member named ‘time’; did you mean ‘getTime’?

Time t = rtc.time();

^~~~

getTime

sketch_dec27a:37:40: error: ‘class Time’ has no member named ‘day’; did you mean ‘date’?

const String day = dayAsString(t.day);

^~~

date

sketch_dec27a:42:9: error: ‘class Time’ has no member named ‘yr’; did you mean ‘year’?

t.yr, t.mon, t.date,

^~

year

sketch_dec27a:43:9: error: ‘class Time’ has no member named ‘hr’; did you mean ‘hour’?

t.hr, t.min, t.sec);

^~

hour

C:\Users\Tavo\Documents\Arduino\sketch_dec27a\sketch_dec27a.ino: In function ‘void setup()’:

sketch_dec27a:59:40: error: ‘kSunday’ is not a member of ‘Time’

Time t(2013, 9, 22, 1, 38, 50, Time::kSunday);

^~~~~~~

sketch_dec27a:61:7: error: ‘class DS1302’ has no member named ‘time’; did you mean ‘getTime’?

rtc.time(t);

^~~~

getTime

exit status 1
‘Day’ in ‘class Time’ does not name a type

S// Example sketch for interfacing with the DS1302 timekeeping chip.
//
// Copyright (c) 2009, Matt Sparks
// All rights reserved.
//
// http://quadpoint.org/projects/arduino-ds1302
#include <stdio.h>
#include <DS1302.h>

namespace {
    // Set the appropriate digital I/O pin connections. These are the pin
    // assignments for the Arduino as well for as the DS1302 chip. See the DS1302
    // datasheet:
    //
    // http://datasheets.maximintegrated.com/en/ds/DS1302.pdf
    const int kCePin = 5; // Chip Enable
    const int kIoPin = 6; // Input/Output
    const int kSclkPin = 7; // Serial Clock
    // Create a DS1302 object.
    DS1302 rtc(kCePin, kIoPin, kSclkPin);
    String dayAsString(const Time::Day day) {
        switch (day) {
          case Time::kSunday: return "Domingo";
          case Time::kMonday: return "Lunes";
          case Time::kTuesday: return "Martes";
          case Time::kWednesday: return "Miercoles";
          case Time::kThursday: return "Jueves";
          case Time::kFriday: return "Viernes";
          case Time::kSaturday: return "Sabado";
        }
        return "(dia desconocido)";
    }
    void printTime() {
      // Get the current time and date from the chip.
      Time t = rtc.time();
      // Name the day of the week.
      const String day = dayAsString(t.day);
      // Format the time and date and insert into the temporary buffer.
      char buf[50];
      snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d %02d:%02d:%02d",
      day.c_str(),
      t.yr, t.mon, t.date,
      t.hr, t.min, t.sec);
      // Print the formatted string to serial so we can see the time.
      Serial.println(buf);
      }
} 
// namespace

void setup() {
  Serial.begin(9600);
  // Initialize a new chip by turning off write protection and clearing the
  // clock halt flag. These methods needn't always be called. See the DS1302
  // datasheet for details.
  rtc.writeProtect(false);
  rtc.halt(false);
  // Make a new time object to set the date and time.
  // Sunday, September 22, 2013 at 01:38:50.
  Time t(2013, 9, 22, 1, 38, 50, Time::kSunday);
  // Set the time and date on the chip.
  rtc.time(t);
}
// Loop and print the time every second.
void loop() {
  printTime();
  delay(1000);
}

Moderador:
En el título no debe usarse la palabra Ayuda. Edita quitándolo por favor!!
Los errores se postean del mismo modo que lo has hecho con el código, asi que corrige.

Lee las Normas del foro

Tienes un problema con los namespaces ¿de donde obtuviste el código?

Hi
Adjunto el sketch con unas instrucciones comentadas. Correlo a ver si te compila/trabaja.

// Example sketch for interfacing with the DS1302 timekeeping chip.
//
// Copyright (c) 2009, Matt Sparks
// All rights reserved.
//
// http://quadpoint.org/projects/arduino-ds1302
#include <stdio.h>
#include <DS1302.h>

//namespace {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< comment
// Set the appropriate digital I/O pin connections. These are the pin
// assignments for the Arduino as well for as the DS1302 chip. See the DS1302
// datasheet:
//
// http://datasheets.maximintegrated.com/en/ds/DS1302.pdf
const int kCePin = 5; // Chip Enable
const int kIoPin = 6; // Input/Output
const int kSclkPin = 7; // Serial Clock
// Create a DS1302 object.
DS1302 rtc(kCePin, kIoPin, kSclkPin);
String dayAsString(const Time::Day day) {
  switch (day) {
    case Time::kSunday: return "Domingo";
    case Time::kMonday: return "Lunes";
    case Time::kTuesday: return "Martes";
    case Time::kWednesday: return "Miercoles";
    case Time::kThursday: return "Jueves";
    case Time::kFriday: return "Viernes";
    case Time::kSaturday: return "Sabado";
  }
  return "(dia desconocido)";
}
void printTime() {
  // Get the current time and date from the chip.
  Time t = rtc.time();
  // Name the day of the week.
  const String day = dayAsString(t.day);
  // Format the time and date and insert into the temporary buffer.
  char buf[50];
  snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d %02d:%02d:%02d",
          // day.c_str(),
           t.yr, t.mon, t.date,
           t.hr, t.min, t.sec);
  // Print the formatted string to serial so we can see the time.
  Serial.println(buf);
}
//}<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<comment
// namespace <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<comment

void setup() {
  Serial.begin(9600);
  // Initialize a new chip by turning off write protection and clearing the
  // clock halt flag. These methods needn't always be called. See the DS1302
  // datasheet for details.
  rtc.writeProtect(false);
  rtc.halt(false);
  // Make a new time object to set the date and time.
  // Sunday, September 22, 2013 at 01:38:50.
  Time t(2013, 9, 22, 1, 38, 50, Time::kSunday);
  // Set the time and date on the chip.
  rtc.time(t);
}
// Loop and print the time every second.
void loop() {
  printTime();
  delay(1000);
}

No tengo un reloj, no lo puedo ejecutar, dinos de dónde obtuviste el código porque la librería que yo encuentro en GitHub es ligeramente diferente por eso pregunto de donde lo sacaste

hola ante todo disculpas por mi encabezado, no crei que fuera tan grave.

tauro0221 aun me sigue mostrando el mismo error.

este es uno de los codigos que tome, pero me di cuenta que no era para el tipo de modulo que tengo

Arduino real time clock using DS3231 RTC and SSD1306 OLED (simple-circuit.com)

y otra de las direcciones es este.. y dodos los demas se basan en este en español, ingles suizo o en aleman y todos me marcan el mismo error

ds1302 (arduino.cc)

HI, El prograa te compilo bien o sigue con problemas en la copilacion.A mi me dio el mismo error que a ti pero el programa tenia algunos errores de variables nodefinidas. Voy a buscar el modulo del reloj ds1302 para ver cual es el problema.

Hi,
Instale el modulo de ds1302 y el programa no trabajo y las lecturas eran en forma de caracteres alfanumerico locos. Fui al link donde tu tienes el programa original y compilo bien y las lecturas son buenas. Adjunto el programa de tu link.Correlo para ver como te trabaja.

// Example sketch for interfacing with the DS1302 timekeeping chip.
//
// Copyright (c) 2009, Matt Sparks
// All rights reserved.
//
// http://quadpoint.org/projects/arduino-ds1302
#include <stdio.h>
#include <DS1302.h>

namespace {

// Set the appropriate digital I/O pin connections. These are the pin
// assignments for the Arduino as well for as the DS1302 chip. See the DS1302
// datasheet:
//
//   http://datasheets.maximintegrated.com/en/ds/DS1302.pdf
const int kCePin   = 5;  // Chip Enable
const int kIoPin   = 6;  // Input/Output
const int kSclkPin = 7;  // Serial Clock

// Create a DS1302 object.
DS1302 rtc(kCePin, kIoPin, kSclkPin);

String dayAsString(const Time::Day day) {
  switch (day) {
    case Time::kSunday: return "Dimanche";
    case Time::kMonday: return "Lundi";
    case Time::kTuesday: return "Mardi";
    case Time::kWednesday: return "Mercredi";
    case Time::kThursday: return "Jeudi";
    case Time::kFriday: return "Vendredi";
    case Time::kSaturday: return "Samedi";
  }
  return "(unknown day)";
}

void printTime() {
  // Obtenez l'heure et la date actuelles de la puce.
  Time t = rtc.time();

  // Nommez le jour de la semaine.
  const String day = dayAsString(t.day);

  // Formater l'heure et la date et les insérer dans le tampon temporaire.
  char buf[50];
  snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d %02d:%02d:%02d",
           day.c_str(),
           t.yr, t.mon, t.date,
           t.hr, t.min, t.sec);

  // Imprimez la chaîne formatée en série pour que nous puissions voir l'heure.
  Serial.println(buf);
}

}  // espace de nommage

void setup() {
  Serial.begin(9600);

  // Initialiser une nouvelle puce en éteignant la protection d'écriture
  rtc.writeProtect(false);
  rtc.halt(false);

  //définir la date et l'heure.
  Time t(2019, 2, 22, 14, 10, 50, Time::kFriday);

  // Fixez l'heure et la date sur la puce.
  rtc.time(t);
}

//Boucler et imprimer l'heure chaque seconde.
void loop() {
  printTime();
  delay(1000);
}

Moderador: Comunicate por privado conmigo