- iPhone topik
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Google Pixel topik
- Bemutatkozott a Poco X7 és X7 Pro
- Yettel topik
- Milyen okostelefont vegyek?
- Fotók, videók mobillal
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Okosóra és okoskiegészítő topik
- Milyen GPS-t vegyek?
-
Mobilarena
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
softguner
csendes tag
válasz
#96292352 #1190 üzenetére
Ezek alapján, kijavítottam neked a fenti kódomat. Elviekben működik, bár tesztelni ezt sem tudtam, mert nincs nálam semmi. Az első kódnál is kiderült volna, hogy balfax voltam, de sajnos nincs nálam eszköz.
int buttonpin = 13;
int buttonpin1 = 12;
int value =0;
int value2 =0;
int adat=0;
int b1state = 0;
int b2state = 0;
void setup ()
{
pinMode(buttonpin, INPUT);
pinMode(buttonpin1, INPUT);
Serial.begin (9600);
}
void loop ()
{
value = digitalRead (buttonpin);
if (value != b1state)
{
if (value == 1)
{
adat++;
Serial.println(adat);
}
}
b1state = value;
value2 = digitalRead (buttonpin1);
if (value2 != b2state)
{
if (value2 == 1)
{
adat--;
Serial.println(adat);
}
}
b2state = value2;
} -
softguner
csendes tag
válasz
#96292352 #1182 üzenetére
Ezen a szinten ennek azért már kisujjból kellene mennie.
int buttonpin = 13;
int buttonpin1 = 12;
int value =0;
int value2 =0;
int adat=0;
void setup ()
{
pinMode(buttonpin, INPUT);
pinMode(buttonpin1, INPUT);
Serial.begin (9600);
}
void loop ()
{
value = digitalRead (buttonpin);
if (value == 1)
{
adat=adat+1;
}
else
{
value2 = digitalRead (buttonpin1);
if (value2 == 1)
{
adat=adat-1;
}
Serial.println (adat);
}
}Nézd át mert fejből írtam.
-
softguner
csendes tag
válasz
#96292352 #1152 üzenetére
Szerintem, ez a kód így eleve nehézkes. Van egy DHT library az arduino.cc-n. Ott létrehozol két objektumot és definiálod azokat két különböző néven.
Ebben van egy példaprogram. Ez a kódja.
#include "DHT.h"
#define DHTPIN 2 // what pin we're connected to
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Connect pin 1 (on the left) of the sensor to +5V
// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
// to 3.3V instead of 5V!
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor
// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors. This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}Itt Definiálod a változókat a beolvasott lábakat. Stb stb.
Pl:
#define DHTPIN 2
#define DHTPINSEC 3
DHT dht(DHTPIN, DHTTYPE);
DHT dhtsec(DHTPINSEC, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
dhtsec.begin();
}És a többi és a többi. Én ezt csinálnám.
-
dave0825
őstag
válasz
#96292352 #1147 üzenetére
Más téma: egyik haverom vett ebay-ről egy Uno klónt, és most néztem neki, hogy 12000 van ráírva az órajel-generátorára, viszont a hirdetésben Atmega16U2 van, ami (én úgy tudom, meg leírást is úgy találtam) 16MHz-es lenne, nem? A képen a hirdetésben tényleg 12000 van ráírva, viszont a neve sem ugyanaz a panelnak, mint a képen, csak UNO van ráírva, semmi más "márka". Szerintetek kezdő arduinózónak mennyit számít, ha ennyivel kevesebb az órajele? Szervomotorok vezérléséhez, ledek villogtatásához, meg ilyen alapabb dolgokhoz elég a 12MHz?
-
#96292352
törölt tag
válasz
#96292352 #1146 üzenetére
Ebben van a baj:
int DHpin = 7;
int DH2pin = 9;
byte dat [5];
byte dat2 [5];
byte read_data () {
byte data;
for (int l = 0; l < 8; l ++) {
if (digitalRead (DHpin) == LOW) {
while (digitalRead (DHpin) == LOW); // wait for 50us
delayMicroseconds (30); // determine the duration of the high level to determine the data is '0 'or '1'
if (digitalRead (DHpin) == HIGH)
data |= (1 << (7-l)); // high front and low in the post
while (digitalRead (DHpin) == HIGH); // data '1 ', wait for the next one receiver
}
}/* 2nd sensor */
byte dat2;
for (int i = 0; i < 8; i ++) {
if (digitalRead (DH2pin) == LOW) {
while (digitalRead (DH2pin) == LOW); // wait for 50us
delayMicroseconds (30); // determine the duration of the high level to determine the data is '0 'or '1'
if (digitalRead (DH2pin) == HIGH)
data |= (1 << (7-i)); // high front and low in the post
while (digitalRead (DH2pin) == HIGH); // data '1 ', wait for the next one receiver
}
}
return data;
} -
gyapo11
őstag
válasz
#96292352 #1143 üzenetére
Ja hogy az egyszerre az egy kijelzőre két értéket jelent. Ebben nem tudok segíteni, nem használtam még kijelzőt sem, de ha áttekinthetőbbé tennéd tagolással, megjegyzésekkel a programot, akkor talán valaki észrevenné a hibát vagy a megoldást.
Mi történik? Egyesével ki tudod íratni, tehát a beolvasás és a kiírás megy. Vagy valami pozícionálási gond lehet a kijelzőn, vagy a második értéket ugyanabba a változóba olvasod, és ezért nincs meg az első.
Új hozzászólás Aktív témák
Hirdetés
- Samsung Galaxy A12 64GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! Samsung Galaxy S25, Samsung Galaxy S25 Plus, Samsung Galaxy S25 Ultra
- AKCIÓ! Gigabyte H510M i5 10400F 16GB DDR4 512GB SSD GTX 1070 8GB Rampage SHIVA Zalman 600W
- BESZÁMÍTÁS! ASROCK H310CM i5 9600K 32GB DDR4 500GB SSD RTX 3050 8GB DeepCool Tesseract SW 500W
- Új és használt laptopok , üzletitől a gamerig , kedvező áron. Garanciával !
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest