Go Down

Topic: [Risolto] serial mode (Read 1 time) previous topic - next topic

karafasta

Mar 10, 2019, 11:29 am Last Edit: Mar 12, 2019, 09:27 pm by gpb01
Buongiorno.
Oramai sto più sul forum per chieder aiuto che altrove.
Ma ogni giorno trovo difficoltà inaspettate.
Sto seguendo questo tutorial:

https://www.youtube.com/watch?v=-Ao9NXpNgOY

Le librerie e lo sketch scaricate da Rinky-Dink Eletronics.


Lancio la verifica e.....serial mode was not declared in this scope!!!!

Questo è lo sketch:
Code: [Select]
// OLED_Analog_Clock
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
// web: http://www.RinkyDinkElectronics.com/
//
// This program was made simply because I was bored.
//
// Hardware requirements:
//  - Any development board supported by the libraries used
//  - OLED display module supported by OLED_I2C
//  - DS3231 RTC
//
// Software requirements:
//  - OLED_I2C library    http://www.RinkyDinkElectronics.com/library.php?id=79 (Arduino)
//                        http://www.RinkyDinkElectronics.com/library.php?id=80 (chipKit)
//  - DS3231 library      http://www.RinkyDinkElectronics.com/library.php?id=73 (Arduino)
//                        http://www.RinkyDinkElectronics.com/library.php?id=74 (chipKit)
//
// Default serial speed for this sketch is 115200 baud.
//
/**************************************************************************/

// Enable (1) or disable (0) VT100 terminal mode
// Enable this if your terminal program supports VT100 control sequences.
// The Serial Monitor in the Arduino IDE does not support VT100 control sequences.
// If using the Serial Monitor the line ending should be set to 'No line ending'.
#define VT100_MODE  0

#include <OLED_I2C.h>
#include <DS3231.h>

// Declare which fonts we will be using
extern uint8_t Sinclair_M[];

// Init the OLED and DS3231 using the hardware I2C pins
OLED myOLED(SDA, SCL);
DS3231 rtc(SDA, SCL);

// Init a Time-data structure
Time  t;

int clockCenterX=31;
int clockCenterY=31;
int oldsec=0;

void setup()
{
  myOLED.begin();
  myOLED.setFont(Sinclair_M);
  
  rtc.begin();

  Serial.begin(115200);
  Serial.println("Send any character to enter serial mode...");
  Serial.println();

  t = rtc.getTime();
}

void drawDisplay()
{
  // Clear screen
  myOLED.clrScr();
  
  // Draw Clockface
  for (int i=0; i<2; i++)
  {
    myOLED.drawCircle(clockCenterX, clockCenterY, 31-i);
  }
  for (int i=0; i<3; i++)
  {
    myOLED.drawCircle(clockCenterX, clockCenterY, i);
  }
  
  // Draw a small mark for every hour
  for (int i=0; i<12; i++)
  {
    drawMark(i);
  }  
  t = rtc.getTime();
}

void drawMark(int h)
{
  float x1, y1, x2, y2;
  
  h=h*30;
  h=h+270;
  
  x1=29*cos(h*0.0175);
  y1=29*sin(h*0.0175);
  x2=26*cos(h*0.0175);
  y2=26*sin(h*0.0175);
  
  myOLED.drawLine(x1+clockCenterX, y1+clockCenterY, x2+clockCenterX, y2+clockCenterY);
}

void drawSec(int s)
{
  float x1, y1, x2, y2;

  s=s*6;
  s=s+270;
  
  x1=29*cos(s*0.0175);
  y1=29*sin(s*0.0175);
  x2=26*cos(s*0.0175);
  y2=26*sin(s*0.0175);
  
  if ((s % 5) == 0)
    myOLED.clrLine(x1+clockCenterX, y1+clockCenterY, x2+clockCenterX, y2+clockCenterY);
  else
    myOLED.drawLine(x1+clockCenterX, y1+clockCenterY, x2+clockCenterX, y2+clockCenterY);
}

void drawMin(int m)
{
  float x1, y1, x2, y2, x3, y3, x4, y4;

  m=m*6;
  m=m+270;
  
  x1=25*cos(m*0.0175);
  y1=25*sin(m*0.0175);
  x2=3*cos(m*0.0175);
  y2=3*sin(m*0.0175);
  x3=10*cos((m+8)*0.0175);
  y3=10*sin((m+8)*0.0175);
  x4=10*cos((m-8)*0.0175);
  y4=10*sin((m-8)*0.0175);
  
  myOLED.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY);
  myOLED.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY);
  myOLED.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY);
  myOLED.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY);
}

void drawHour(int h, int m)
{
  float x1, y1, x2, y2, x3, y3, x4, y4;

  h=(h*30)+(m/2);
  h=h+270;
  
  x1=20*cos(h*0.0175);
  y1=20*sin(h*0.0175);
  x2=3*cos(h*0.0175);
  y2=3*sin(h*0.0175);
  x3=8*cos((h+12)*0.0175);
  y3=8*sin((h+12)*0.0175);
  x4=8*cos((h-12)*0.0175);
  y4=8*sin((h-12)*0.0175);
  
  myOLED.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY);
  myOLED.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY);
  myOLED.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY);
  myOLED.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY);
}

void printDate()
{
  Time t_temp;
  
  t_temp = rtc.getTime();
  myOLED.print(rtc.getDOWStr(FORMAT_SHORT), RIGHT, 0);
  if (t_temp.date<10)
    myOLED.printNumI(t_temp.date, 96, 16);
  else
    myOLED.printNumI(t_temp.date, 88, 16);
  myOLED.print(rtc.getMonthStr(FORMAT_SHORT), RIGHT, 32);
  myOLED.printNumI(t_temp.year, RIGHT, 47);
}

void loop()
{
  int x, y;
  int prevSec;
  
  drawDisplay();
  drawSec(t.sec);
  drawMin(t.min);
  drawHour(t.hour, t.min);
  printDate();
  myOLED.update();
  
  prevSec = t.sec;
  while (t.sec == prevSec)
  {
    if (Serial.available()>0)
      serialMode();
    delay(100);
    t = rtc.getTime();
  }
}


Cosa dovrei fare?Ho cercato in giro ma non sono riuscito a risolvere il problema.
Chiedo gentilmente aiuto
Grazie


«A parità di fattori la spiegazione più semplice è da preferire»

maubarzi

Nel loop, verso la fine, richiama la funzione serialMode() che però non trovo definita da nessuna parte.
Hai copiato tutto lo sketch?
Prova a verificare se per caso ci sono anche altri file da includere nel progetto.
Il programma può essere spezzato su più file per comodità, poi prima della compilazione vengono messi tutti assieme.
Nessuna buona azione resterà impunita!

Preistoria -> medioevo -> rinascimento -> risorgimento -> rincoglionimento!

Standardoil

stavo guardando il sito di dinky....electronics, ma non ho capito quale programma hai scaricato
Prima legge di Nelson (che sono io): La risposta giusta si può ottenere solo dalla domanda giusta, domande sbagliate danno risposte inutili

Non bado a studenti, che copino altrove

Hai problema-Ti domando-Non rispondi: Non ti serve più

uwefed

Odio la gente che come in questo video spaccia una scheda falsificata come Arduino originale.
Uwe

maubarzi

#4
Mar 10, 2019, 12:57 pm Last Edit: Mar 10, 2019, 12:59 pm by maubarzi
In effetti c'è il link "serialStuff" dove c'è codice con anche la funzione serialMode()
Ci sono poi altri due link con codice che potrebbe servire.

Il programma dovrebbe essere questo

Odio la gente che come in questo video spaccia una scheda falsificata come Arduino originale.
Uwe
Da cosa si capisce? serigrafia leggermente diversa? pulsante di reset bianco?
Nessuna buona azione resterà impunita!

Preistoria -> medioevo -> rinascimento -> risorgimento -> rincoglionimento!

gpb01

#5
Mar 10, 2019, 01:33 pm Last Edit: Mar 10, 2019, 01:37 pm by gpb01
Nel loop, verso la fine, richiama la funzione serialMode() che però non trovo definita da nessuna parte.
Come no?  :o

In fondo alla pagina ci sono TUTTI i moduli da inserire nel progetto e c'è un file che si chiama serialStuff che contiene tutte le varie funzioni, inclusa la serialMode() ;)

Non solo, se si scarica il progetto completo  UTFT_Analog_Clock.zip , ci sono dentro tutti i files necessari !

Guglielmo
Search is Your friend ... or I am Your enemy !

maubarzi

Come no?  :o
Io mi riferivo allo sketch postato, e poi ho indicato pure io che sul sito c'erano altri file con quello che mancava :P
Nessuna buona azione resterà impunita!

Preistoria -> medioevo -> rinascimento -> risorgimento -> rincoglionimento!

gpb01

#7
Mar 10, 2019, 01:41 pm Last Edit: Mar 10, 2019, 01:47 pm by gpb01
Io mi riferivo allo sketch postato, e poi ho indicato pure io che sul sito c'erano altri file con quello che mancava :P
Si, l'ho visto ... ma occorrono anche gli altri moduli. Se uno invece di scaricarsi solo il programma principale, si scarica TUTTO il progetto (il .zip alla fine), se li trova dentro tutti. ;)

Non toccatemi rinkydinkelectronics perché è uno dei siti più seri e lui scrive delle librerie eccezionali ! E il video con l'Arduino "farlocco" non lo ha certo fatto "Henning Karlsen" (il titolare di rinkydinkelectronics), ma un "pischello" che ha mostrato la sua realizzazione di quel progetto ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

uwefed

#8
Mar 10, 2019, 01:54 pm Last Edit: Mar 10, 2019, 08:20 pm by uwefed Reason: correzione
Da cosa si capisce? serigrafia leggermente diversa? pulsante di reset bianco?
Guarda la "M" e "A" di "MEGA".

Non toccatemi rinkydinkelectronics perché è uno dei siti più seri e lui scrive delle librerie eccezionali ! E il video con l'Arduino "farlocco" non lo ha certo fatto "Henning Karlsen" (il titolare di rinkydinkelectronics), ma un "pischello" che ha mostrato la sua realizzazione di quel progetto ;)
Guglielmo
Non sono seri se usano delle schede falsificate.
Allora digli di spendere un po di piú ed di usare per i loro video o un Arduino originale o un clone chiandolo "arduino xxx clone" e non uno falsificato.

Ciao Uwe

Standardoil

giurin giuretta, non te lo tocco
non lo conoscevo, ad un primo sguardo mi è sembrato un bel "gallo ruspante", un fracco di roba,
mi son detto: troppo bello per essere vero...
invece lo e'?
Prima legge di Nelson (che sono io): La risposta giusta si può ottenere solo dalla domanda giusta, domande sbagliate danno risposte inutili

Non bado a studenti, che copino altrove

Hai problema-Ti domando-Non rispondi: Non ti serve più

gpb01

#10
Mar 10, 2019, 02:16 pm Last Edit: Mar 10, 2019, 02:16 pm by gpb01
Guarda la "M" e "A" di "MEGA".
Non sono seri se usano delle schede falsificate.
Uwe ... il tuo problema è che NON leggi sino in fondo i post!  :smiley-evil:

T'ho detto che quel video NON è di rinkydinkelectronics, ma di un "pischello" qualsiasi che ha relizzato il suo progetto e lo ha messo su YouTube.

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01

#11
Mar 10, 2019, 02:18 pm Last Edit: Mar 10, 2019, 02:19 pm by gpb01
non lo conoscevo, ad un primo sguardo mi è sembrato un bel "gallo ruspante", un fracco di roba,
mi son detto: troppo bello per essere vero...
invece lo e'?
Lo è ! Tutte ottime librerie, un sacco di belle utility, tutto piuttosto ben documentato e ... in caso di problemi a me ha sempre cortesemente risposto via eMail !

Guglielmo
Search is Your friend ... or I am Your enemy !

maubarzi

Guarda la "M" e "A" di "MEGA".
Interessante, non avevo mai notato che c'erano dei falsi di questo tipo.
Buono a sapersi.
Nessuna buona azione resterà impunita!

Preistoria -> medioevo -> rinascimento -> risorgimento -> rincoglionimento!

gpb01

#13
Mar 10, 2019, 03:12 pm Last Edit: Mar 10, 2019, 03:15 pm by gpb01
Interessante, non avevo mai notato che c'erano dei falsi di questo tipo.
Buono a sapersi.
Ormai è diventato difficle trovarli ...
... anche su AliExpress si sono adeguati e il nome "Arduino" raramente appare sulla scheda.

Comunque, nel caso della MEGA, la contraffazione è evidente, sia nella scritta che nel logo grafico:

  ORIGINALE


CONTRAFFATTO

Guglielmo
Search is Your friend ... or I am Your enemy !

karafasta

'sera.
Non è ci abbia capito molo...quello che mi sembra di avere capito è di non aver scaricato lo sketch completo.Ho scaricato OLED_Analog_clock,solo quello e dopo i vostri consigli anche serial stuff(di cui non ho capito l'utilità);forse dovrei inserirlo nello sketch iniziale?ma non saprei come.
Non vi scandaliizzate se sparo delle c.....te
In ogni caso ho cliccato su   UTFT_Analog_Clock.zip come consigliato da gpb01 con questo risultato


 
No deep linking
I am sorry.

You were trying to download the file 'UTFT_Analog_Clock.zip', but this site does not allow deep linking to files.

Please inform the administrator of the site you came from.

I have no idea what you are looking for...


Fine per me!
«A parità di fattori la spiegazione più semplice è da preferire»

Go Up