/*
Example sketch DrawText.ino version 7.01.
From Kjell & Company's book "Hur funkar Arduino?" version 7.01.
From Kjell & Company's book "Hvordan virker Arduino?" version 7.01.
Using example code from the Universal 8bit Graphics Library
https://github.com/olikraus/u8glib/
This code is in the public domain.
*/
int ledNr; // en global variabel som anger hur många pixlar som ska tändas
int radie; // en global variabel som anger radien på en cirkel på OLED skärmen
// Inkluderar Neopixel bibliotek
#include <Adafruit_NeoPixel.h>
// Inkluderar display bibliotek
#include "U8glib.h"
// Deklarera och initiera global GPIO-stiftkonstant för Neopixel-ringen
const byte neoPin = 4;
// Deklarera och initiera global konstant för antal pixlar
const byte neoPixels = 16;
// Deklarera och initiera variabel för Neopixel ljusstyrka
byte neoBright = 100;
// Skapa ett nytt Neopixel-ringobjekt
Adafruit_NeoPixel ring = Adafruit_NeoPixel(neoPixels, neoPin, NEO_GRB);
// Skapa ny SSD1306 I2C-skärm med 128x64 upplösning
U8GLIB_SSD1306_128X64 oled(U8G_I2C_OPT_NONE);
void setup() {
// Initiera ringen
ring.begin();
ring.setBrightness(neoBright);
ring.show();
}
void loop(void) {
int potVal=analogRead(A0); //läs av och spara värdet från potentiometern (o-1023)
ledNr= 16*potVal/1023; // en global variabel som anger hur många pixlar som ska tändas
radie= 30*potVal/1023; // en global variabel som anger radien på en cirkel på OLED skärmen
f_neo(); // anropar funktionen som styr neopixelringen
// Refresh picture
oled.firstPage();
do {
draw(); // anropar funktionen som styr OLED
} while(oled.nextPage());
}
void f_neo(){
// Turn on pixels
for(int i = 0; i < ledNr; i++){
ring.setPixelColor(i, ring.Color(0,255,255));
ring.show();
}
// Turn off pixels
for(int i = ledNr; i < neoPixels; i++){
ring.setPixelColor(i, ring.Color(255,255,255));
ring.show();
}
}
void draw(void) {
// Draw circle
oled.drawCircle(64,31,radie);
}