0
/* Controlling a servo position using a potentiometer (variable resistor) by Michal Rinott <http://people.interaction-ivrea.it/m.rinott> modified on 8 Nov 2013 by Scott Fitzgerald http://www.arduino.cc/en/Tutorial/Knob */ #include <Wire.h> #include "ds3231.h" #include <Servo.h> int potpin = 0; // Analog pin is used to connect the potentiometer int val; // Variable to read the value from the analog pin int pause = 800; // Delay in open feeders (feed amount) Servo myservo; // create servo object to control a servo #define BUFF_MAX 256 // First Service uint8_t wake_HOUR1 = 12; uint8_t wake_MINUTE1 = 56; uint8_t wake_SECOND1 = 0; // Second Service uint8_t wake_HOUR2 = 18; uint8_t wake_MINUTE2 = 30; // How often to update the information to the standard output (ms) unsigned long prev = 5000, interval = 5000; void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object myservo.write (0); // Set the position to 0 Serial.begin (9600); Wire.begin ();   DS3231_init (DS3231_INTCN);   DS3231_clear_a1f ();   DS3231_clear_a2f ();   set_alarm (); } void loop() {  char buff [BUFF_MAX];   unsigned long now = millis ();   struct ts t;   // Output through time (5000ms) The time and alarm clocks ustanovlennnye   if ((now - prev> interval) && (Serial.available () <= 0)) {     DS3231_get (& t);     // Display current time     snprintf (buff, BUFF_MAX, ".% d% 02d% 02d% 02d:.% 02d:% 02d", t.year,              t.mon, t.mday, t.hour, t.min, t.sec);     Serial.println (buff);     // Display a1 debug info     DS3231_get_a1 (& buff [0], 59);     Serial.println (buff);     DS3231_get_a2 (& buff [0], 59);     Serial.println (buff);     if (DS3231_triggered_a1 ()) {       // INT has been pulled low       Serial.println ( "-> First Service load"); myservo.write(10); // sets the servo position according to the scaled value delay(1000); // waits for the servo to get there myservo.write(170); // sets the servo position according to the scaled value delay(1000); // waits for the servo to get there       // Clear a1 alarm flag and let INT go into hi-z       DS3231_clear_a1f ();     }     if (DS3231_triggered_a2 ()) {       // INT has been pulled low       Serial.println ( "-> Second Service load"); myservo.write(10); // sets the servo position according to the scaled value delay(1000); // waits for the servo to get there myservo.write(170); // sets the servo position according to the scaled value delay(1000); } 
1
  • Indent your code with ordinary spaces, not with no-break spaces. Commented Nov 4, 2016 at 16:36

1 Answer 1

0

As Gerben notes, the stackoverflow question error: stray '\302' in program is about this issue. Basically, your file contains one or more characters not valid in the current character set. The character is either non-printing or a multi-byte unicode character.

How did the character get there? Some of the ways mentioned in the stackoverflow question are pressing ctrl-space or shift-space.

How to find the character and get rid of it? You can look at output from hex-dumping the file, which will identify all characters definitively. Or by trial and error you can delete and retype spaces in the region of the error.

2
  • I retyped my code on a new sketch and it uploaded successfully but i tried to change the times to see if my RTC code uploaded accurately instead of just successfully I tried changing the numbers on wake hours and minutes and now i have a compiling error. Commented Nov 7, 2016 at 15:10
  • The error message will have a line number that points you to (or near) the line causing an error. If the error is in one of the uint8_t wake_HOUR1 = 12; ... uint8_t wake_MINUTE2 = 30; lines, it probably is a simple typo, like an extra or missing character. Each of those lines should be of the form uint8_t somevariablename=somevalue; where somevalue should be an integer, like 0, 1, ... 7, 8, 9, 10, 11 ... 59. A value expressed as 08 or 09 instead of 8 or 9 would produce an error because 8 and 9 are not octal digits. A missing semicolon or no space after uint8_t also is an error. Commented Nov 7, 2016 at 15:42

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.