Wacht aantal milliseconden Arduino IDE.

Iets als dit regelt de NTP update in de aquacontrol software:

//    wait a specific interval, accounting for rollover with subtraction!
  
unsigned long timerInterval = 50;  // this is the interval in milliseconds
unsigned long nextTimer = millis() + timerInterval;
  
void loop() {
  lastMillis = millis();
  if ( ( long ) ( millis() - nextTimer ) >= 0 ) {
    Serial.println( "Interval has passed." );    
    nextTimer += timerInterval;
    //do some more stuff...
  }

//rest of the main loop
}

Alles nur geklaut:
http://playground.arduino.cc/Code/TimingRollover

Arduino IDE 1.8.1 setup voor ESP8266

Het probleem

De ‘Get started‘ aanwijzingen voor de WeMos D1 mini op de WeMos site werken niet voor Cellie.
De linker geeft vage foutmeldingen en er komt geen executable tevoorschijn.
Het lijkt dat de aanwijzingen toegespitst zijn op de nieuwe revisie met 16MB flash geheugen.
De linker lijkt te┬áklagen over onvoldoende geheugen blablah…
Anyway,

De oplossing

  1. Installeer de Arduino IDE.
  2. Ga naar File>Preferences en in het veld ‘Additional Boards Manager URLs:‘ voer ┬áde volgende URL in:
    http://arduino.esp8266.com/stable/package_esp8266com_index.json
    en druk op ‘OK‘.
  3. Restart de Arduino IDE.

Should work now.

de links:

https://github.com/esp8266/Arduino#installing-with-boards-manager

ESP8266 – .softAP() en .softAPConfig in Arduino IDE

De config komt na de init. Dus:

WiFi.softAPConfig( myIPAdress, myGateway, mySubnet );
WiFi.softAP( "myAP" );

is fout en

WiFi.softAP( "myAP" );
WiFi.softAPConfig( myIPAdress, myGateway, mySubnet );

is goed.

Same goes for WiFi.config() en WiFi.begin().
Eerst de init dan de config.
https://github.com/esp8266/Arduino/issues/128#issuecomment-96787709

Plasmabol ESP8266 PWM frequentie.

byte outputPin = D4;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}

void loop() {
// put your main code here, to run repeatedly:
//todo: make a blacklist of misbehaving frequecies
long newFreq = random( 9, 20 );
long newDuration = random( 2048 );
long newDutyCycle = random( 6, 6 + PWMRANGE / 2 ) ;

analogWrite( outputPin, newDutyCycle );
analogWriteFreq( newFreq );
Serial.println( "duty: " + (String)newDutyCycle + " freq: " + (String)newFreq );
delay( newDuration );
}