Display OLED 2.42″ I2C 128×64 SSD1309 Module – Hvid er en 2,42 tommer skærm som er den større version af den velkendte 0,96″ OLED-skærm men med en støre opløsning, og derfor større, nemmere at læse pixels. OLED (Organic Light-Emitting Diode) betyder, at skærmen består af alle små LED’er (hver pixel er lig med 1 LED). Som et resultat behøver skærmen ikke baggrundsbelysning og er meget mere økonomisk at bruge. Derudover giver dette en meget højere kontrast, hvilket gør denne skærm meget overskuelig og læselig trods størrelsen.
Tekniske detaljer:
resolution: 128 * 64
Display color: Hvid
Viewing angle:> 160 °
Working Voltage: 2.4 to 3.6V
Working Temperature: -30 c ~ 70 c
Module Size: 70.1*48.1(mm)
Interface: I2C
Driver IC: OLED_I2C
Installere OLED_I2C Library
- Download library (Download)
- Åben Arduino IDE software og klik på “Sketch/Include library”
- Klik nu på “Add Zip. library” og find Zip filen du lige har downloaded.
- Luk, og åben Arduino IDE programmet. (Genstart programmet)
- Nu er library installeret.
- Library kan også downloades direkte i Arduino IDE find den her: “Sketch/Include library/Manage library/Multi_OLED– by Larry Bank”
Info: Modulet er testet med OLED_I2C Library.
Eksempel
Her viser vi et hurtig eksempel på hvordan du opsætter displayet med en Cube animation.
HUSK: Dette er et 3.3V display!
Du skal bruge:
Forbind det sådan:
VCC (Modul) – 3.3V (Arduino)
GND (Modul) – GND (Arduino)
SCK (Modul) – A5 (Arduino)
SDA (Modul) – A4 (Arduino)
Kode:
#include <OLED_I2C.h> OLED myOLED(SDA, SCL, 8); extern uint8_t SmallFont[]; double vectors[8][3] = {{20, 20, 20},{-20, 20, 20},{-20, -20, 20},{20, -20, 20},{20, 20, -20},{-20, 20, -20},{-20, -20, -20},{20, -20, -20}}; double perspective = 100.0f; int deltaX, deltaY, deltaZ, iter = 0; long stime, fps = 0, frames = 0; void setup() { randomSeed(analogRead(0)); myOLED.begin(); myOLED.setFont(SmallFont); stime = micros(); } void loop() { myOLED.clrScr(); drawVectors(); if (iter == 0) { deltaX = random(7) - 3; deltaY = random(7) - 3; deltaZ = random(7) - 3; iter = random(250) + 5; } rotateX(deltaX); rotateY(deltaY); rotateZ(deltaZ); iter--; fps += 1000000 / (micros() - stime); stime = micros(); frames++; myOLED.printNumI(fps / frames, 0, 0, 3); // Print average FPS on screen myOLED.update(); } int translateX(double x, double z) { return (int)((x + 64) + (z * (x / perspective))); } int translateY(double y, double z) { return (int)((y + 32) + (z * (y / perspective))); } void rotateX(int angle) { double rad, cosa, sina, Yn, Zn; rad = angle * PI / 180; cosa = cos(rad); sina = sin(rad); for (int i = 0; i < 8; i++) { Yn = (vectors[i][1] * cosa) - (vectors[i][2] * sina); Zn = (vectors[i][1] * sina) + (vectors[i][2] * cosa); vectors[i][1] = Yn; vectors[i][2] = Zn; } } void rotateY(int angle) { double rad, cosa, sina, Xn, Zn; rad = angle * PI / 180; cosa = cos(rad); sina = sin(rad); for (int i = 0; i < 8; i++) { Xn = (vectors[i][0] * cosa) - (vectors[i][2] * sina); Zn = (vectors[i][0] * sina) + (vectors[i][2] * cosa); vectors[i][0] = Xn; vectors[i][2] = Zn; } } void rotateZ(int angle) { double rad, cosa, sina, Xn, Yn; rad = angle * PI / 180; cosa = cos(rad); sina = sin(rad); for (int i = 0; i < 8; i++) { Xn = (vectors[i][0] * cosa) - (vectors[i][1] * sina); Yn = (vectors[i][0] * sina) + (vectors[i][1] * cosa); vectors[i][0] = Xn; vectors[i][1] = Yn; } } void drawVectors() { myOLED.drawLine(translateX(vectors[0][0], vectors[0][2]), translateY(vectors[0][1], vectors[0][2]), translateX(vectors[1][0], vectors[1][2]), translateY(vectors[1][1], vectors[1][2])); myOLED.drawLine(translateX(vectors[1][0], vectors[1][2]), translateY(vectors[1][1], vectors[1][2]), translateX(vectors[2][0], vectors[2][2]), translateY(vectors[2][1], vectors[2][2])); myOLED.drawLine(translateX(vectors[2][0], vectors[2][2]), translateY(vectors[2][1], vectors[2][2]), translateX(vectors[3][0], vectors[3][2]), translateY(vectors[3][1], vectors[3][2])); myOLED.drawLine(translateX(vectors[3][0], vectors[3][2]), translateY(vectors[3][1], vectors[3][2]), translateX(vectors[0][0], vectors[0][2]), translateY(vectors[0][1], vectors[0][2])); myOLED.drawLine(translateX(vectors[4][0], vectors[4][2]), translateY(vectors[4][1], vectors[4][2]), translateX(vectors[5][0], vectors[5][2]), translateY(vectors[5][1], vectors[5][2])); myOLED.drawLine(translateX(vectors[5][0], vectors[5][2]), translateY(vectors[5][1], vectors[5][2]), translateX(vectors[6][0], vectors[6][2]), translateY(vectors[6][1], vectors[6][2])); myOLED.drawLine(translateX(vectors[6][0], vectors[6][2]), translateY(vectors[6][1], vectors[6][2]), translateX(vectors[7][0], vectors[7][2]), translateY(vectors[7][1], vectors[7][2])); myOLED.drawLine(translateX(vectors[7][0], vectors[7][2]), translateY(vectors[7][1], vectors[7][2]), translateX(vectors[4][0], vectors[4][2]), translateY(vectors[4][1], vectors[4][2])); myOLED.drawLine(translateX(vectors[0][0], vectors[0][2]), translateY(vectors[0][1], vectors[0][2]), translateX(vectors[4][0], vectors[4][2]), translateY(vectors[4][1], vectors[4][2])); myOLED.drawLine(translateX(vectors[1][0], vectors[1][2]), translateY(vectors[1][1], vectors[1][2]), translateX(vectors[5][0], vectors[5][2]), translateY(vectors[5][1], vectors[5][2])); myOLED.drawLine(translateX(vectors[2][0], vectors[2][2]), translateY(vectors[2][1], vectors[2][2]), translateX(vectors[6][0], vectors[6][2]), translateY(vectors[6][1], vectors[6][2])); myOLED.drawLine(translateX(vectors[3][0], vectors[3][2]), translateY(vectors[3][1], vectors[3][2]), translateX(vectors[7][0], vectors[7][2]), translateY(vectors[7][1], vectors[7][2])); }
Kontakt os
Du er altid velkommen til at kontakte os på info@ardustore.dk, eller sende os en besked via messenger (Klik her) og vi vil hjælpe dig.
Anmeldelser
Der er endnu ikke nogle anmeldelser.