|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2024 11 09, 02:27. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Mikrovaldikliai » Arduino platforma
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
|
Arduino platforma |
Parašytas: 2018 10 14, 13:01 |
|
|
|
Atsidarai Adafruit-GFX-Library\Fonts
sisirandi patinkanti srifta i kopijuoji ji pvz "manofontas.h"
jame dasidedi visus reikalingus simbolius
arba pasinaudoji fontconvert programele (ja reikes susikompiliuoti)
ir is TrueType srifto pasidarai *.h
Jei nori sutaupyti atminties, tai istrini visus nereikalingus simboliu aprasus
tada apsirasai konversijos eilute ir pries isvesdamas i ekrana pradzioje susirandi indeksa simbolio, kuri reikia isvesti ir tada liepi ji nupiesti. |
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2018 12 15, 15:56 |
|
|
|
Sveiki.
Reikalingas patarimas arba sprendimas dėl Dallas temperatūros jutiklių.
Man reikia žinoti ar prie kojelės nėra nei vieno jutiklio, lygiai vienas arba daugiau nei vienas. Jų adresai nereikalingi ir nesvarbūs kol kas.
Dallas Temperature bibliotekos funkcijos getDeviceCount nepritaikiau, nes ji parodo tik rastų termometrų kiekį .begin(); funkcijos ir tik tų termometrų, kurių adresai buvo aprašyti programoje.
Mano problema buvo, kad su viena Wemos kojele neveikė kažkodėl termometrai. Pakeitus kojelę ir tikrinant pagal temperatūrą radau sprendimą.
Kodas: |
byte get_ds_count(){
sensors.requestTemperatures();
if(sensors.getTempCByIndex(1) != -127) return 2;
if(sensors.getTempCByIndex(0) != -127) return 1;
if(sensors.getTempCByIndex(0) == -127) return 0;
} |
|
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2019 01 18, 08:54 |
|
|
|
Uždavinys susiveda į vieno jutiklio adreso nuskaitymą. Šakojasi į adreso nevienareikšmiškumą ( daugiau, ne vienas ) ir timeout atsakymo negavimą - neprijungta nei vieno.
Smulki pastaba - reikalai gerokai pasitaiso maitinant iš atskiros linijos. Kai krūva termometrų maitinasi iš duomenų linijos, sunku suvaldyti. |
|
|
|
|
|
Arduino platforma |
Parašytas: 2019 03 20, 12:19 |
|
|
|
Sveiki, gal galėtumėte kas patarti, paaiškinti.
Yra 45vnt led juostos po 1m, jos yra sujungtos į matricą 9*5 (9 eilutės, 5 stulpeliai). Eilutės pajungtos prie 30-38 Arduino pino, o stulpeliai prie 40-44 pino, naudoju Arduino mega.
Rašydamas kodą turėjau idėją viską apsirašyti per dvimatį masyvą, tačiau suabejojau ar tai įmanoma?
Kaip aprašyti vieną eilutę su vienmačiu masyvu viskas aišku.
Bet kaip elgtis šiuo atveju kaip dvimačiam masyvui priskirti reikšmes.
Gal galit kas paaiškinti ar užvesti ant kelio.
Dėkoju. |
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2019 03 20, 17:21 |
|
|
|
Kodas: |
int intArray[3][3]={
{1,2,3},
{4,5,6},
{7,8,9}
};
char *strArray[2][3]={
{"123weewrrt","456dfds","789dsf"},
{"ABCdfdsfs","DEFdf","GHIsadsad"}
};
void setup() {
Serial.begin(115200);
}
void loop() {
int i,j;
Serial.println();
for(i=0;i<3;i++){
for(j=0;j<3;j++){
Serial.print(intArray[i][j]);
if (j<3) Serial.print(",\t");
}
Serial.println();
}
for(i=0;i<2;i++){
for(j=0;j<3;j++){
Serial.write('"');
Serial.print(strArray[i][j]);
Serial.write('"');
if (j<3) Serial.print(",\t\t");
}
Serial.println();
}
Serial.print("*strArray[1][2][3]='");
Serial.write(*(strArray[1][2]+3)); // turek uomeny, kad adresacija nuo 0
Serial.println("'");
Serial.println("press ANY key...");
while(Serial.available()<1);
Serial.write(Serial.read());
} |
priskyrimas toks pat:
Kodas: |
intArray[eilute][stulpelis]=reiksme; |
|
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2019 03 21, 19:21 |
|
|
|
Sveiki AlgisL Jūsų duotas pavyzdys man per sudėtingas, aš tik pradedantysis, bet ačiū ir už tai.
Aš kažką galvoju daryti pagal šį kodą jis man labiau suprantamas
const int row[8] = {
2, 7, 19, 5, 13, 18, 12, 16
};
const int col[8] = {
6, 11, 10, 3, 17, 4, 8, 9
};
int pixels[8][8];
int x = 5;
int y = 5;
void setup() {
for (int thisPin = 0; thisPin < 8; thisPin++) {
pinMode(col[thisPin], OUTPUT);
pinMode(row[thisPin], OUTPUT);
digitalWrite(col[thisPin], HIGH);
}
for (int x = 0; x < 8; x++) {
for (int y = 0; y < 8; y++) {
pixels[x][y] = HIGH;
}
}
}
Arba pagal šį.
int R[] = {2,7,A5,5,13,A4,12,A2};
int C[] = {6,11,10,3,A3,4,8,9};
unsigned char biglove[8][8] =
{
0,0,0,0,0,0,0,0,
0,1,1,0,0,1,1,0,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
0,1,1,1,1,1,1,0,
0,0,1,1,1,1,0,0,
0,0,0,1,1,0,0,0,
};
unsigned char smalllove[8][8] =
{
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,1,0,0,1,0,0,
0,1,1,1,1,1,1,0,
0,1,1,1,1,1,1,0,
0,0,1,1,1,1,0,0,
0,0,0,1,1,0,0,0,
0,0,0,0,0,0,0,0,
};
void setup()
{
for(int i = 0;i<8;i++)
{
pinMode(R[i],OUTPUT);
pinMode(C[i],OUTPUT);
}
}
void loop()
{
for(int i = 0 ; i < 100 ; i++)
{
Display(biglove);
}
for(int i = 0 ; i < 50 ; i++)
{
Display(smalllove);
}
}
void Display(unsigned char dat[8][8])
{
for(int c = 0; c<8;c++)
{
digitalWrite(C[c],LOW) ;
for(int r = 0;r<8;r++)
{
digitalWrite(R[r],dat[r][c]);
}
delay(1);
Clear();
}
}
void Clear()
{
for(int i = 0;i<8;i++)
{
digitalWrite(R[i],LOW);
digitalWrite(C[i],HIGH);
}
} |
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2019 03 21, 22:57 |
|
|
|
nepatingek uzdeti [ code ] [ / code ] tagus
Kodas: |
//int R[] = {2,7,A5,5,13,A4,12,A2};
//int C[] = {6,11,10,3,A3,4,8,9};
// siulau naudoti PAx 22,23,24,25, 26,27,28,29 pinus kaip COL[0..7] 0-virsus, 7-apacia
// PCx 30,31,32,33, 34,35,36,37 pinus kaip ROW[7..0] 7-kaire 0-desine
// tada labai supaprasteja aprasas
#include <avr/io.h>
const uint8_t biglove[8] PROGMEM={
0b00000000,
0b01100110,
0b11111111,
0b11111111,
0b11111111,
0b01111110,
0b00111100,
0b00011000
};
const uint8_t smalllove[8] PROGMEM={
0b00000000,
0b00000000,
0b00100100,
0b01111110,
0b01111110,
0b00111100,
0b00011000,
0b00000000
};
inline void Clear(){
PORTA = 0xFF;
PORTC = 0x00;
}
void setup(){
Clear();
DDRA = 0xFF;
DDRC = 0xFF;
}
void loop(){
for(uint8_t i=0; i<100; i++)
Display(biglove);
for(uint8_t i=0; i<50; i++)
Display(smalllove);
}
void Display(uint16_t addr){
uint8_t col=0x01;
for(; col; col<<=1){
PORTC=pgm_read_byte_near(addr++);
PORTA=(uint8_t)~col;
delay(1);
Clear();
}
}
|
|
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2019 03 22, 21:04 |
|
|
|
Šitą kodą aš pateikiau tik kaip man labiau suprantamą. Pas mane yra 9 eilutės, todėl poro A nebepakanka. Kaip reikėtu elgtis tokiu atveju? Ar galima viena bita "pasiskolinti" iš kito porto? |
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2019 03 22, 21:43 |
|
|
|
galima, galima ir esama koda grazinti i varianta su Arduino only varianta
Kodas: |
#define ROWS 9
const uint8_t R[ROWS] = {2,7,A5,5, 13,A4,12,A2, A9};
const uint8_t C[8] = {6,11,10,3, A3,4,8,9};
const uint8_t biglove[ROWS] PROGMEM={
0b00000000,
0b01100110,
0b11111111,
0b11111111,
0b11111111,
0b01111110,
0b00111100,
0b00011000,
0b00000000
};
const uint8_t smalllove[ROWS] PROGMEM={
0b00000000,
0b00000000,
0b00100100,
0b01111110,
0b01111110,
0b00111100,
0b00011000,
0b00000000,
0b00000000
};
void setup(){
uint8_t i;
for(i=0; i<sizeof(R); i++){
digitalWrite(i, HIGH);
pinMode(i, OUTPUT);
}
for(i=0; i<sizeof(C); i++){
digitalWrite(i, LOW);
pinMode(i, OUTPUT);
}
}
void loop(){
for(uint8_t i=0; i<100; i++)
Display(biglove);
for(uint8_t i=0; i<50; i++)
Display(smalllove);
}
void Display(const uint8_t *addr){
uint8_t data, row, col;
for(row=0; row<sizeof(R); row++){
data=pgm_read_byte_near(addr++);
for(col=0; col<sizeof(C); data<<=1, col++)
digitalWrite(C[col], data & 0x80 ? HIGH : LOW);
digitalWrite(R[row], LOW);
delay(1);
digitalWrite(R[row], HIGH);
}
}
|
|
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2019 03 22, 22:07 |
|
|
|
Dėkoju AlgisL, šis kodas bus pritaikytas kalėdinės eglutės dekoracijoms. Kaip minėjau tai bus 45 vnt led juostu po 1m, tiksliau 15 rgb juostu, o dar tiksliau po 5 rgb trimis aukštais. Kadangi kalėdos dar labai toli. Tai galvoju pasidaryti led matrica 9×5, kad galėčiau išsibandyti. |
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2019 03 23, 09:24 |
|
|
|
Kadangi LED juostos valdosi 12V ir susidaro sroves (mazdaug po 1A pe 1m), tai tau reikes "stiprintuvo", tad stulpeliams bus patogu ULN2803A + 150omu i pliusa + IRF7314 arba IRF7316 (jie turi po du P-FET SO8 korpuse, todel uzteks 4 vnt), o eilutems tiks ULN2803A + 150omu i pliusa + IRF3205 arba IRF1404 DPAK ar TO-220 korpuse, ir nepamirsk, kad eiluciu laidai turi buti apie 8x didesnio skersmens, o tranzistoriams gali prireikti nedideliu radiatoriuku arba per izoliatoriu visus mant vieno didesnio.
Jei jau darysi savo plokste, tai stulpeliams rinkis PILNUS PORTA/PORTC, o eilutems gali rinktis betkuriuos kitus laisvus isvadus (taip ir programa paprastesne ir plokstes isvedziojimas daznai irgi paprastesnis). |
|
|
|
|
|
|
Arduino platforma |
Parašytas: 2019 03 24, 21:18 |
|
|
|
Dėl ULN2803A gera mintis, anksčiau buvau daręs paprastesnį projektėlį tai stiprinimui naudojau tranzistoriukus. Bet klausimas kodėl i pliusą jungti per 150 omų varžą?
Beje dar kilo mintis gal būtų verta vietoj arduino panaudoti kažkurį iš Atmega mikrovaldiklių ir viską gražiai turėti vienoje plokštėje. |
|
|
|
|
|
Arduino platforma |
Parašytas: 2019 03 25, 18:29 |
|
|
|
Gaila bet tenka pripažinti, kad visdėlto nepagaunu minties dėl varžų prie ULN2803A . Jei nesunku gal galit tiksliau pasakyti. |
|
|
|
|
|
|
Google paieška forume |
|
|
Naujos temos forume |
|
|
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
|
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
|
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
|
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
|
LEGO
Mänguköök,
mudelautod,
nukuvanker |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
|
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
|
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
|
GTA 6 Weapons
GTA 6 Characters,
GTA 6 Map,
GTA 6 Vehicles |
|
FS25 Mods
Farming Simulator 25 Mods |
|
|
|