Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

Hjælp til Arduino

Af Ultrabruger DeathVenom | 09-01-2017 18:45 | 1769 visninger | 20 svar, hop til seneste
Hej, Jeg søger lidt hjælp til noget arduino. Er totalt nybegynder. Er ved at forsøge at anvende en RFID chip som on/of til en led. Har fået RFIDen til at virke, men ved ikke hvordan man slår LEDen til/fra under samme If kommando. Er der noget der hedder toggle? Såsom digitalWrite(LedPin, TOGGLE); Istedet for High/Low? På forhånd tak Vh Kasper
--
Intel i7-3930K CPU, Aseteck liquid cooling, Evga Nvidia Gtx 780 Classified ACX, 875w PSU, 20GB 1600mhz RAM, Samsung 256GB EVO SSD, Seagate 1TB HDD,

--
Sidst redigeret 09-01-2017 18:48
#1
Coff
Supporter
09-01-2017 19:13

Rapporter til Admin
Må vi se noget kode? Umiddelbart så skal du bare bruge digitalWrite(LedPin, 0) og Ledpin, 1.
--
#2
DeathVenom
Ultrabruger
09-01-2017 19:29

Rapporter til Admin
Forsøger med noget digitaltoggle lige nu, men intet virker. Har prøvet at markere det jeg bøvler med lige nu. #include <MFRC522.h> #include <SPI.h> // Used for communication via SPI with the Module // WS2812 RGB Stick connection #define SDAPIN 10 // RFID Module SDA Pin is connected to the UNO 10 Pin #define RESETPIN 8 // RFID Module RST Pin is connected to the UNO 8 Pin #include <DigitalToggle.h> #define LedPin 7 byte FoundTag; // Variable used to check if Tag was found byte ReadTag; // Variable used to store anti-collision value to read Tag information byte TagData[MAX_LEN]; // Variable used to store Full Tag Data byte TagSerialNumber[5]; // Variable used to store only Tag Serial Number byte GoodTagSerialNumber[5] = {0x76, 0xD6, 0x12, 0x7E}; // The Tag Serial number we are looking for MFRC522 nfc(SDAPIN, RESETPIN); // Init of the library using the UNO pins declared above void setup() { pinMode(LedPin, OUTPUT); SPI.begin(); Serial.begin(115200); // Start to find an RFID Module Serial.println("Looking for RFID Reader"); nfc.begin(); byte version = nfc.getFirmwareVersion(); // Variable to store Firmware version of the Module // If can't find an RFID Module if (! version) { Serial.print("Didn't find RC522 board."); while(1); //Wait until a RFID Module is found } // If found, print the information about the RFID Module Serial.print("Found chip RC522 "); Serial.print("Firmware version: 0x"); Serial.println(version, HEX); Serial.println(); } void loop() { String GoodTag="False"; // Variable used to confirm good Tag Detected // Check to see if a Tag was detected // If yes, then the variable FoundTag will contain "MI_OK" FoundTag = nfc.requestTag(MF1_REQIDL, TagData); if (FoundTag == MI_OK) { delay(200); // Get anti-collision value to properly read information from the Tag ReadTag = nfc.antiCollision(TagData); memcpy(TagSerialNumber, TagData, 4); // Write the Tag information in the TagSerialNumber variable Serial.println("Tag detected."); Serial.print("Serial Number: "); for (int i = 0; i < 4; i++) { // Loop to print serial number to serial monitor Serial.print(TagSerialNumber[i], HEX); Serial.print(", "); } Serial.println(""); Serial.println(); // Check if detected Tag has the right Serial number we are looking for for(int i=0; i < 4; i++){ if (GoodTagSerialNumber[i] != TagSerialNumber[i]) { break; // if not equal, then break out of the "for" loop } if (i == 3) { // if we made it to 4 loops then the Tag Serial numbers are matching GoodTag="TRUE"; } } if (GoodTag == "TRUE"){ Serial.println("Success!!!!!!!"); Serial.println(); void toggle_led() { digitalToggle(LedPin); }
--
Intel i7-3930K CPU, Aseteck liquid cooling, Evga Nvidia Gtx 780 Classified ACX, 875w PSU, 20GB 1600mhz RAM, Samsung 256GB EVO SSD, Seagate 1TB HDD,
#3
InFerNo
Guru
09-01-2017 19:45

Rapporter til Admin
det ser ud til at du bare skal ændre den sidste markerede blok til at være if (GoodTag == "TRUE"){ Serial.println("Success!!!!!!!"); Serial.println(); digitalToggle(LedPin); }}} OBS: du havde glemt at lukke din if sætning, og din loop funktion! Derved de sidste 2*}} Benyt gerne pastebin til kode: http://pastebin.com[...] Så bliver det en del pænere og mere overskueligt.
--
Overclocked Haswell-Pascal Inside!
--
Sidst redigeret 09-01-2017 19:47
#4
Coff
Supporter
09-01-2017 19:53

Rapporter til Admin
Der mangler da lige et par } og hvorfor har du lavet en funktion toggle_led midt i koden? Skriver den linjen med "Success.." ud i konsollen?
--
#5
DeathVenom
Ultrabruger
09-01-2017 19:58

Rapporter til Admin
Hmm. Nu skriver den: Error compiling for board Arduino/Genuino Uno. #include <DigitalToggle.h> #include <MFRC522.h> #include <SPI.h> // Used for communication via SPI with the Module // WS2812 RGB Stick connection #define LedPin 7 // Pin 5 connected to DIN of RGB Stick #define SDAPIN 10 // RFID Module SDA Pin is connected to the UNO 10 Pin #define RESETPIN 8 // RFID Module RST Pin is connected to the UNO 8 Pin byte FoundTag; // Variable used to check if Tag was found byte ReadTag; // Variable used to store anti-collision value to read Tag information byte TagData[MAX_LEN]; // Variable used to store Full Tag Data byte TagSerialNumber[5]; // Variable used to store only Tag Serial Number byte GoodTagSerialNumber[5] = {0x76, 0xD6, 0x12, 0x7E}; // The Tag Serial number we are looking for MFRC522 nfc(SDAPIN, RESETPIN); // Init of the library using the UNO pins declared above void setup() { pinMode(LedPin, OUTPUT); digitalWrite(LedPin, LOW); SPI.begin(); Serial.begin(115200); // Start to find an RFID Module Serial.println("Looking for RFID Reader"); nfc.begin(); byte version = nfc.getFirmwareVersion(); // Variable to store Firmware version of the Module // If can't find an RFID Module if (! version) { Serial.print("Didn't find RC522 board."); while(1); //Wait until a RFID Module is found } // If found, print the information about the RFID Module Serial.print("Found chip RC522 "); Serial.print("Firmware version: 0x"); Serial.println(version, HEX); Serial.println(); } void loop() { String GoodTag="False"; // Variable used to confirm good Tag Detected // Check to see if a Tag was detected // If yes, then the variable FoundTag will contain "MI_OK" FoundTag = nfc.requestTag(MF1_REQIDL, TagData); if (FoundTag == MI_OK) { delay(200); // Get anti-collision value to properly read information from the Tag ReadTag = nfc.antiCollision(TagData); memcpy(TagSerialNumber, TagData, 4); // Write the Tag information in the TagSerialNumber variable Serial.println("Tag detected."); Serial.print("Serial Number: "); for (int i = 0; i < 4; i++) { // Loop to print serial number to serial monitor Serial.print(TagSerialNumber[i], HEX); Serial.print(", "); } Serial.println(""); Serial.println(); // Check if detected Tag has the right Serial number we are looking for for(int i=0; i < 4; i++){ if (GoodTagSerialNumber[i] != TagSerialNumber[i]) { break; // if not equal, then break out of the "for" loop } if (i == 3) { // if we made it to 4 loops then the Tag Serial numbers are matching GoodTag="TRUE"; } } if (GoodTag == "TRUE"){ Serial.println("Success!!!!!!!"); Serial.println(); digitalToggle(LedPin); }}}
--
Intel i7-3930K CPU, Aseteck liquid cooling, Evga Nvidia Gtx 780 Classified ACX, 875w PSU, 20GB 1600mhz RAM, Samsung 256GB EVO SSD, Seagate 1TB HDD,
#6
DeathVenom
Ultrabruger
09-01-2017 19:59

Rapporter til Admin
Der stod også dette: *portInputRegister(digitalPinToPort(P)) = digitalPinToBitMask(P);
--
Intel i7-3930K CPU, Aseteck liquid cooling, Evga Nvidia Gtx 780 Classified ACX, 875w PSU, 20GB 1600mhz RAM, Samsung 256GB EVO SSD, Seagate 1TB HDD,
#7
DeathVenom
Ultrabruger
09-01-2017 20:01

Rapporter til Admin
Det med SUCCES er bare fordi en del af koden er lånt andetsteds fra hvor han havde en lille skørm tilsluttet :)
--
Intel i7-3930K CPU, Aseteck liquid cooling, Evga Nvidia Gtx 780 Classified ACX, 875w PSU, 20GB 1600mhz RAM, Samsung 256GB EVO SSD, Seagate 1TB HDD,
#8
Coff
Supporter
09-01-2017 20:16

Rapporter til Admin
Hvor har du den kode fra? Hvilken version af MFRC522-biblioteket bruger du?
--
#9
DeathVenom
Ultrabruger
09-01-2017 20:20

Rapporter til Admin
Koden er herfra: https://brainy-bits.com[...] Bare uden alle de LEDer og buzzeren. Mit er bare med en "simpel" on/off led. MFRC522 biblioteket står under "The code" i linket.
--
Intel i7-3930K CPU, Aseteck liquid cooling, Evga Nvidia Gtx 780 Classified ACX, 875w PSU, 20GB 1600mhz RAM, Samsung 256GB EVO SSD, Seagate 1TB HDD,
#10
Coff
Supporter
09-01-2017 20:27

Rapporter til Admin
Din digitalToggle.h skal se sådan ud, http://pastebin.com[...] #include <pins_arduino.h> skal væk og #include "Arduino.h" skal bruges i stedet for
--
#11
DeathVenom
Ultrabruger
09-01-2017 20:30

Rapporter til Admin
Tak :) Hvor skal det stå?
--
Intel i7-3930K CPU, Aseteck liquid cooling, Evga Nvidia Gtx 780 Classified ACX, 875w PSU, 20GB 1600mhz RAM, Samsung 256GB EVO SSD, Seagate 1TB HDD,
#12
Coff
Supporter
09-01-2017 20:35

Rapporter til Admin
Find filen "DigitalToggle.h" og udskift den linje som hedder #include <pins_arduino.h> og udskift den med #include "Arduino.h" Gem filen og recompiler dit program. #include <pins_arduino.h>
--
Sidst redigeret 09-01-2017 20:36
#13
DeathVenom
Ultrabruger
09-01-2017 20:41

Rapporter til Admin
Du aner ikke hvor meget jeg har bævlet med det her! TUSINDE TAK!!!! :)
--
Intel i7-3930K CPU, Aseteck liquid cooling, Evga Nvidia Gtx 780 Classified ACX, 875w PSU, 20GB 1600mhz RAM, Samsung 256GB EVO SSD, Seagate 1TB HDD,
#14
Coff
Supporter
09-01-2017 20:43

Rapporter til Admin
#13 Du siger bare til en anden gang :-)
--
#15
DeathVenom
Ultrabruger
09-01-2017 20:54

Rapporter til Admin
Et spørgsmål på farten :) Hvis jeg nu skal bruge led'ens high/low status og referere til den som feks: if (LedPin == HIGH) { Så et eller andet Synes ikke jeg kan bruge den sådan. Er det fordi at det et output? Hvad kan jeg gøre? På forhånd tak
--
Intel i7-3930K CPU, Aseteck liquid cooling, Evga Nvidia Gtx 780 Classified ACX, 875w PSU, 20GB 1600mhz RAM, Samsung 256GB EVO SSD, Seagate 1TB HDD,
#16
DeathVenom
Ultrabruger
10-01-2017 08:01

Rapporter til Admin
B :)
--
Intel i7-3930K CPU, Aseteck liquid cooling, Evga Nvidia Gtx 780 Classified ACX, 875w PSU, 20GB 1600mhz RAM, Samsung 256GB EVO SSD, Seagate 1TB HDD,
#17
Coff
Supporter
10-01-2017 08:20

Rapporter til Admin
#15 så skal du ikke bruge DigitalToggle :-D den bruges kun hvis du ikke har brug for at holde styr på om den er tændt eller slukket men kun vil skifte tilstand. Brug i stedet for en variable som enten er 1 (High) eller 0 (low) og sæt den som du nu har brug for. Brug så digitalWrite(pinled, din variable) til at tænde og slukke for din led.
--
#18
DeathVenom
Ultrabruger
10-01-2017 08:30

Rapporter til Admin
Men kan man lave et system så det fungerer ligesom digital toggle? samme chip skal kunne tænde/slukke for leden. Hvor leden symboliserer noget mere.
--
Intel i7-3930K CPU, Aseteck liquid cooling, Evga Nvidia Gtx 780 Classified ACX, 875w PSU, 20GB 1600mhz RAM, Samsung 256GB EVO SSD, Seagate 1TB HDD,
#19
DeathVenom
Ultrabruger
10-01-2017 10:25

Rapporter til Admin
Eller er der måske en måde at aflæse statussen på leden på? :)
--
Intel i7-3930K CPU, Aseteck liquid cooling, Evga Nvidia Gtx 780 Classified ACX, 875w PSU, 20GB 1600mhz RAM, Samsung 256GB EVO SSD, Seagate 1TB HDD,
#20
Coff
Supporter
10-01-2017 13:49

Rapporter til Admin
#19 Du laver det som en variable som du kan aflæse. Se http://pastebin.com[...] hvor du kan bruge variablen onOff som du nu har lyst til. Den er enten 0 eller 1.
--

Opret svar til indlægget: Hjælp til Arduino

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning