sdf123 Skrevet 14. april 2017 Rapporter Del Skrevet 14. april 2017 Burde jo vært mulig å sette opp en site hvor man oppretter en bruker og legger til alle sensorene man har og huker av på de som er ledige. Så kan andre medlemmer søke gjennom siten og finne ledige komponenter. Lenke til kommentar
Gavekort Skrevet 14. april 2017 Rapporter Del Skrevet 14. april 2017 Dere kan jo høre med hackerspaces i lokalområdet. De har stort sett et utvalg av utstyr man kan låne inntil man får bestilt det inn selv. Det er jo heller ikke forbudt å spørre her inne og gjøre en profitt-fri byttehandel. Lenke til kommentar
Hårek Skrevet 17. april 2017 Forfatter Rapporter Del Skrevet 17. april 2017 (endret) Kan dele min nylige erfaring med noen rimelige display moduler, som er lett tilgengelig. OLED, 0,96" 128x64 pixel blå OLED, 1,3" 128x64 pixel hvit Disse fungerer bra, men det blir veldig smått. LCD, 2,8" 320x240 pixel, farger. Touchskjerm Størrelsen er brukbar. Men problemet er at det ikke er dobbeltbuffret, og sletting av hele skjermen er ganske tregt. Kan slette mindre rektangler av gangen, men det blir litt flimring. Den passer ikke helt på toppen av en Ethernet shield, en komponent tar borti RJ45 sokkelen. Må forlenge pinnene. Edit: Har også bestillt denne: 3.5 Inch TFT Color Screen Module 320 X 480 Et felles problem for alle displayene er mangel på passende frontplate (bezel). Det blir da krevende å montere på en pen måte. Endret 18. april 2017 av Hårek Lenke til kommentar
Jod-R Skrevet 17. april 2017 Rapporter Del Skrevet 17. april 2017 Med STOR hjelp fra Hårek så er mitt første nixie prosjekt helt ferdig. Alu-boksen er 163mm lang. Nå har jeg bestillt meg etsesett for kretskort, det tar vanvittig med tid å lodde ledninger mellom ic'er. Antar det gikk mellom 70 og 90 timer + det Hårek har brukt på å hjelpe meg. Han er særdeles dyktig! Klokka er basert på dette prosjektet https://github.com/8163jb/Nixie-Clock Her er bloggen om prosjektet som mitt prosjekt er basert på: https://github.com/8163jb/Nixie-Clock Men Hårek har endret betydelig på kildekoden. Alt til det bedre! Om noen er interessert i koden så er det Hårek som i mine øyne er eier av den så den deler ikke jeg. Klokka har en "standalone arduino" ATMEGA328P-PU som MCU, 3 stk 74HC595 og 6stk SN74141. RTC er DS3231 AT24C32 modul. Alle IC'er får 5v fra L7805CV og rørene har en 555 IRF740 switching PS som leverer 170v. Hørest enkelt ut men gud bedre hvor lang tid det tok... Bilder av mitt første ferdige Nixie prosjekt: Veldig flott klokke. Laget aluminium beholderen selv, kjøpt den spesifikt for dette prosjektet eller er det gjenbruk ifra noe annet? Driver å samler inn ideer til et fremtidelig nixe tube klokke prosjekt. Lenke til kommentar
Gjest Slettet+5132 Skrevet 17. april 2017 Rapporter Del Skrevet 17. april 2017 Med STOR hjelp fra Hårek så er mitt første nixie prosjekt helt ferdig. Alu-boksen er 163mm lang. Nå har jeg bestillt meg etsesett for kretskort, det tar vanvittig med tid å lodde ledninger mellom ic'er. Antar det gikk mellom 70 og 90 timer + det Hårek har brukt på å hjelpe meg. Han er særdeles dyktig! Klokka er basert på dette prosjektet https://github.com/8163jb/Nixie-Clock Her er bloggen om prosjektet som mitt prosjekt er basert på: https://github.com/8163jb/Nixie-Clock Men Hårek har endret betydelig på kildekoden. Alt til det bedre! Om noen er interessert i koden så er det Hårek som i mine øyne er eier av den så den deler ikke jeg. Klokka har en "standalone arduino" ATMEGA328P-PU som MCU, 3 stk 74HC595 og 6stk SN74141. RTC er DS3231 AT24C32 modul. Alle IC'er får 5v fra L7805CV og rørene har en 555 IRF740 switching PS som leverer 170v. Hørest enkelt ut men gud bedre hvor lang tid det tok... Bilder av mitt første ferdige Nixie prosjekt: Veldig flott klokke. Laget aluminium beholderen selv, kjøpt den spesifikt for dette prosjektet eller er det gjenbruk ifra noe annet? Driver å samler inn ideer til et fremtidelig nixe tube klokke prosjekt. Handlet etter tenkelig mål, egentlig kjøpte jeg den til temperaturmåleren Hårek også har hjulpet meg med, men har enda en på tur. Har handlet to til med 120 lengde jeg skal lage klokker med 4 siffer på/i. http://www.ebay.com/itm/391575271383?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT Lenke til kommentar
Hårek Skrevet 17. april 2017 Forfatter Rapporter Del Skrevet 17. april 2017 Har bestillt et par bokser selv. 150*105*55mm Aluminum fra Banggood Lenke til kommentar
xibriz Skrevet 19. april 2017 Rapporter Del Skrevet 19. april 2017 Noen som har en 74hc4078 eller 74hc32 eller tilsvarende OR Gate liggende å slenge? Lenke til kommentar
Sokkalf™ Skrevet 19. april 2017 Rapporter Del Skrevet 19. april 2017 Tja, jeg har minst 30 74LS32, om det kan brukes. Mulig jeg har noen HC også, men det får jeg ikke sjekket før jeg kommer hjem. Lenke til kommentar
xibriz Skrevet 19. april 2017 Rapporter Del Skrevet 19. april 2017 Tja, jeg har minst 30 74LS32, om det kan brukes. Mulig jeg har noen HC også, men det får jeg ikke sjekket før jeg kommer hjem. Jeg kan bruke LS også. Nevnte bare HC fordi den bruker mindre strøm. Hvis du er villig til å sende meg noen i en konvolutt mot at jeg Vippser deg noen kroner blir jeg takknemlig Lenke til kommentar
iam99pk Skrevet 20. april 2017 Rapporter Del Skrevet 20. april 2017 Hei! Trenger litt hjelp. Har fått til noe men ikke alt.. Skal få til at du må aktivere en RFID sensor så trykker du på en push knapp så aktiveres et rele og det blir aktivert helt til du aktivere RFID sensoren og tryller på knappen igjen. Har lekt litt med RFID sensoren og funnet en kode på nett også har jeg fått til å skru av og på rele med en push knapp men får ikke begge kodene inn i samma Arduino kort og til å fungere sammen.. Lenke til kommentar
Gavekort Skrevet 20. april 2017 Rapporter Del Skrevet 20. april 2017 Det kan være alt mulig rart. Kan du dele koden her? Lenke til kommentar
iam99pk Skrevet 20. april 2017 Rapporter Del Skrevet 20. april 2017 (endret) http://www.instructables.com/id/Arduino-RC522-RFID-Door-Unlock/?amp_page=trueEr vel den koden jeg har brukt.. funker fint men skulle fått til at istedenfor å aktivere utgangen så skal den aktivere en inngang i f.Eks 5sek og hvis jeg trykker på en annen knapp da så slår et rele deg på helt til man gjør det samme igjen..Har ikke noe i mot å prøve selv men trenger litt hjelp her skal også legge inn flere kanpper til å styre noe lys men det prøver jegpå selv etter jeg får dette til.. Endret 20. april 2017 av iam99pk Lenke til kommentar
iam99pk Skrevet 20. april 2017 Rapporter Del Skrevet 20. april 2017 (endret) nå er jeg hjemme.. denne koden bruker jeg på RFID.. /** --------------------------------------------------------------------------------------------------------------------* Example sketch/program showing An Arduino Door Access Control featuring RFID, EEPROM, Relay* --------------------------------------------------------------------------------------------------------------------* This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid** This example showing a complete Door Access Control SystemSimple Work Flow (not limited to) :+---------++----------------------------------->READ TAGS+^------------------------------------------+| +--------------------+ || | | || | | || +----v-----+ +-----v----+ || |MASTER TAG| |OTHER TAGS| || +--+-------+ ++-------------+ || | | | || | | | || +-----v---+ +----v----+ +----v------+ || +------------+READ TAGS+---+ |KNOWN TAG| |UNKNOWN TAG| || | +-+-------+ | +-----------+ +------------------+ || | | | | | || +----v-----+ +----v----+ +--v--------+ +-v----------+ +------v----+ || |MASTER TAG| |KNOWN TAG| |UNKNOWN TAG| |GRANT ACCESS| |DENY ACCESS| || +----------+ +---+-----+ +-----+-----+ +-----+------+ +-----+-----+ || | | | | || +----+ +----v------+ +--v---+ | +--------------->+-------+EXIT| |DELETE FROM| |ADD TO| | |+----+ | EEPROM | |EEPROM| | |+-----------+ +------+ +-------------------------------+** Use a Master Card which is act as Programmer then you can able to choose card holders who will granted access or not** **Easy User Interface**** Just one RFID tag needed whether Delete or Add Tags. You can choose to use Leds for output or Serial LCD module to inform users.** **Stores Information on EEPROM**** Information stored on non volatile Arduino's EEPROM memory to preserve Users' tag and Master Card. No Information lost* if power lost. EEPROM has unlimited Read cycle but roughly 100,000 limited Write cycle.** **Security*** To keep it simple we are going to use Tag's Unique IDs. It's simple and not hacker proof.** @license Released into the public domain.** Typical pin layout used:* -----------------------------------------------------------------------------------------* MFRC522 Arduino Arduino Arduino Arduino Arduino* Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro* Signal Pin Pin Pin Pin Pin Pin* -----------------------------------------------------------------------------------------* RST/Reset RST 9 5 D9 RESET/ICSP-5 RST* SPI SS SDA(SS) 10 53 D10 10 10* SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16* SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14* SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15*/#include // We are going to read and write PICC's UIDs from/to EEPROM#include // RC522 Module uses SPI protocol#include // Library for Mifare RC522 Devices/*Instead of a Relay you may want to use a servo. Servos can lock and unlock door locks tooRelay will be used by default*/// #include/*For visualizing whats going on hardware we need some leds and to control door lock a relay and a wipe button(or some other hardware) Used common anode led,digitalWriting HIGH turns OFF led Mind that if you are goingto use common cathode led or just seperate leds, simply comment out #define COMMON_ANODE,*/#define COMMON_ANODE#ifdef COMMON_ANODE#define LED_ON LOW#define LED_OFF HIGH#else#define LED_ON HIGH#define LED_OFF LOW#endif#define redLed 7 // Set Led Pins#define greenLed 6#define blueLed 5#define relay 4 // Set Relay Pin#define wipeB 3 // Button pin for WipeModeboolean match = false; // initialize card match to falseboolean programMode = false; // initialize programming mode to falseboolean replaceMaster = false;uint8_t successRead; // Variable integer to keep if we have Successful Read from Readerbyte storedCard[4]; // Stores an ID read from EEPROMbyte readCard[4]; // Stores scanned ID read from RFID Modulebyte masterCard[4]; // Stores master card's ID read from EEPROM// Create MFRC522 instance.#define SS_PIN 10#define RST_PIN 9MFRC522 mfrc522(SS_PIN, RST_PIN);///////////////////////////////////////// Setup ///////////////////////////////////void setup() {//Arduino Pin ConfigurationpinMode(redLed, OUTPUT);pinMode(greenLed, OUTPUT);pinMode(blueLed, OUTPUT);pinMode(wipeB, INPUT_PULLUP); // Enable pin's pull up resistorpinMode(relay, OUTPUT);//Be careful how relay circuit behave on while resetting or power-cycling your ArduinodigitalWrite(relay, HIGH); // Make sure door is lockeddigitalWrite(redLed, LED_OFF); // Make sure led is offdigitalWrite(greenLed, LED_OFF); // Make sure led is offdigitalWrite(blueLed, LED_OFF); // Make sure led is off//Protocol ConfigurationSerial.begin(9600); // Initialize serial communications with PCSPI.begin(); // MFRC522 Hardware uses SPI protocolmfrc522.PCD_Init(); // Initialize MFRC522 Hardware//If you set Antenna Gain to Max it will increase reading distance//mfrc522.PCD_SetAntennaGain(mfrc522.RxGain_max);Serial.println(F("Access Control Example v0.1")); // For debugging purposesShowReaderDetails(); // Show details of PCD - MFRC522 Card Reader details//Wipe Code - If the Button (wipeB) Pressed while setup run (powered on) it wipes EEPROMif (digitalRead(wipeB) == LOW) { // when button pressed pin should get low, button connected to grounddigitalWrite(redLed, LED_ON); // Red Led stays on to inform user we are going to wipeSerial.println(F("Wipe Button Pressed"));Serial.println(F("You have 15 seconds to Cancel"));Serial.println(F("This will be remove all records and cannot be undone"));delay(15000); // Give user enough time to cancel operationif (digitalRead(wipeB) == LOW) { // If button still be pressed, wipe EEPROMSerial.println(F("Starting Wiping EEPROM"));for (uint8_t x = 0; x < EEPROM.length(); x = x + 1) { //Loop end of EEPROM addressif (EEPROM.read(x) == 0) { //If EEPROM address 0// do nothing, already clear, go to the next address in order to save time and reduce writes to EEPROM}else {EEPROM.write(x, 0); // if not write 0 to clear, it takes 3.3mS}}Serial.println(F("EEPROM Successfully Wiped"));digitalWrite(redLed, LED_OFF); // visualize a successful wipedelay(200);digitalWrite(redLed, LED_ON);delay(200);digitalWrite(redLed, LED_OFF);delay(200);digitalWrite(redLed, LED_ON);delay(200);digitalWrite(redLed, LED_OFF);}else {Serial.println(F("Wiping Cancelled")); // Show some feedback that the wipe button did not pressed for 15 secondsdigitalWrite(redLed, LED_OFF);}}// Check if master card defined, if not let user choose a master card// This also useful to just redefine the Master Card// You can keep other EEPROM records just write other than 143 to EEPROM address 1// EEPROM address 1 should hold magical number which is '143'if (EEPROM.read(1) != 143) {Serial.println(F("No Master Card Defined"));Serial.println(F("Scan A PICC to Define as Master Card"));do {successRead = getID(); // sets successRead to 1 when we get read from reader otherwise 0digitalWrite(blueLed, LED_ON); // Visualize Master Card need to be defineddelay(200);digitalWrite(blueLed, LED_OFF);delay(200);}while (!successRead); // Program will not go further while you not get a successful readfor ( uint8_t j = 0; j < 4; j++ ) { // Loop 4 timesEEPROM.write( 2 + j, readCard[j] ); // Write scanned PICC's UID to EEPROM, start from address 3}EEPROM.write(1, 143); // Write to EEPROM we defined Master Card.Serial.println(F("Master Card Defined"));}Serial.println(F("-------------------"));Serial.println(F("Master Card's UID"));for ( uint8_t i = 0; i < 4; i++ ) { // Read Master Card's UID from EEPROMmasterCard = EEPROM.read(2 + i); // Write it to masterCardSerial.print(masterCard, HEX);}Serial.println("");Serial.println(F("-------------------"));Serial.println(F("Everything Ready"));Serial.println(F("Waiting PICCs to be scanned"));cycleLeds(); // Everything ready lets give user some feedback by cycling leds}///////////////////////////////////////// Main Loop ///////////////////////////////////void loop () {do {successRead = getID(); // sets successRead to 1 when we get read from reader otherwise 0// When device is in use if wipe button pressed for 10 seconds initialize Master Card wipingif (digitalRead(wipeB) == LOW) { // Check if button is pressed// Visualize normal operation is iterrupted by pressing wipe button Red is like more Warning to userdigitalWrite(redLed, LED_ON); // Make sure led is offdigitalWrite(greenLed, LED_OFF); // Make sure led is offdigitalWrite(blueLed, LED_OFF); // Make sure led is off// Give some feedbackSerial.println(F("Wipe Button Pressed"));Serial.println(F("Master Card will be Erased! in 10 seconds"));delay(10000); // Wait 10 seconds to see user still wants to wipeif (digitalRead(wipeB) == LOW) {EEPROM.write(1, 0); // Reset Magic Number.Serial.println(F("Restart device to re-program Master Card"));while (1);}}if (programMode) {cycleLeds(); // Program Mode cycles through Red Green Blue waiting to read a new card}else {normalModeOn(); // Normal mode, blue Power LED is on, all others are off}}while (!successRead); //the program will not go further while you are not getting a successful readif (programMode) {if ( isMaster(readCard) ) { //When in program mode check First If master card scanned again to exit program modeSerial.println(F("Master Card Scanned"));Serial.println(F("Exiting Program Mode"));Serial.println(F("-----------------------------"));programMode = false;return;}else {if ( findID(readCard) ) { // If scanned card is known delete itSerial.println(F("I know this PICC, removing..."));deleteID(readCard);Serial.println("-----------------------------");Serial.println(F("Scan a PICC to ADD or REMOVE to EEPROM"));}else { // If scanned card is not known add itSerial.println(F("I do not know this PICC, adding..."));writeID(readCard);Serial.println(F("-----------------------------"));Serial.println(F("Scan a PICC to ADD or REMOVE to EEPROM"));}}}else {if ( isMaster(readCard)) { // If scanned card's ID matches Master Card's ID - enter program modeprogramMode = true;Serial.println(F("Hello Master - Entered Program Mode"));uint8_t count = EEPROM.read(0); // Read the first Byte of EEPROM thatSerial.print(F("I have ")); // stores the number of ID's in EEPROMSerial.print(count);Serial.print(F(" record(s) on EEPROM"));Serial.println("");Serial.println(F("Scan a PICC to ADD or REMOVE to EEPROM"));Serial.println(F("Scan Master Card again to Exit Program Mode"));Serial.println(F("-----------------------------"));}else {if ( findID(readCard) ) { // If not, see if the card is in the EEPROMSerial.println(F("Welcome, You shall pass"));granted(300); // Open the door lock for 300 ms}else { // If not, show that the ID was not validSerial.println(F("You shall not pass"));denied();}}}}///////////////////////////////////////// Access Granted ///////////////////////////////////void granted ( uint16_t setDelay) {digitalWrite(blueLed, LED_OFF); // Turn off blue LEDdigitalWrite(redLed, LED_OFF); // Turn off red LEDdigitalWrite(greenLed, LED_ON); // Turn on green LEDdigitalWrite(relay, LOW); // Unlock door!delay(setDelay); // Hold door lock open for given secondsdigitalWrite(relay, HIGH); // Relock doordelay(1000); // Hold green LED on for a second}///////////////////////////////////////// Access Denied ///////////////////////////////////void denied() {digitalWrite(greenLed, LED_OFF); // Make sure green LED is offdigitalWrite(blueLed, LED_OFF); // Make sure blue LED is offdigitalWrite(redLed, LED_ON); // Turn on red LEDdelay(1000);}///////////////////////////////////////// Get PICC's UID ///////////////////////////////////uint8_t getID() {// Getting ready for Reading PICCsif ( ! mfrc522.PICC_IsNewCardPresent()) { //If a new PICC placed to RFID reader continuereturn 0;}if ( ! mfrc522.PICC_ReadCardSerial()) { //Since a PICC placed get Serial and continuereturn 0;}// There are Mifare PICCs which have 4 byte or 7 byte UID care if you use 7 byte PICC// I think we should assume every PICC as they have 4 byte UID// Until we support 7 byte PICCsSerial.println(F("Scanned PICC's UID:"));for ( uint8_t i = 0; i < 4; i++) { //readCard = mfrc522.uid.uidByte;Serial.print(readCard, HEX);}Serial.println("");mfrc522.PICC_HaltA(); // Stop readingreturn 1;}void ShowReaderDetails() {// Get the MFRC522 software versionbyte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);Serial.print(F("MFRC522 Software Version: 0x"));Serial.print(v, HEX);if (v == 0x91)Serial.print(F(" = v1.0"));else if (v == 0x92)Serial.print(F(" = v2.0"));elseSerial.print(F(" (unknown),probably a chinese clone?"));Serial.println("");// When 0x00 or 0xFF is returned, communication probably failedif ((v == 0x00) || (v == 0xFF)) {Serial.println(F("WARNING: Communication failure, is the MFRC522 properly connected?"));Serial.println(F("SYSTEM HALTED: Check connections."));// Visualize system is halteddigitalWrite(greenLed, LED_OFF); // Make sure green LED is offdigitalWrite(blueLed, LED_OFF); // Make sure blue LED is offdigitalWrite(redLed, LED_ON); // Turn on red LEDwhile (true); // do not go further}}///////////////////////////////////////// Cycle Leds (Program Mode) ///////////////////////////////////void cycleLeds() {digitalWrite(redLed, LED_OFF); // Make sure red LED is offdigitalWrite(greenLed, LED_ON); // Make sure green LED is ondigitalWrite(blueLed, LED_OFF); // Make sure blue LED is offdelay(200);digitalWrite(redLed, LED_OFF); // Make sure red LED is offdigitalWrite(greenLed, LED_OFF); // Make sure green LED is offdigitalWrite(blueLed, LED_ON); // Make sure blue LED is ondelay(200);digitalWrite(redLed, LED_ON); // Make sure red LED is ondigitalWrite(greenLed, LED_OFF); // Make sure green LED is offdigitalWrite(blueLed, LED_OFF); // Make sure blue LED is offdelay(200);}//////////////////////////////////////// Normal Mode Led ///////////////////////////////////void normalModeOn () {digitalWrite(blueLed, LED_ON); // Blue LED ON and ready to read carddigitalWrite(redLed, LED_OFF); // Make sure Red LED is offdigitalWrite(greenLed, LED_OFF); // Make sure Green LED is offdigitalWrite(relay, HIGH); // Make sure Door is Locked}//////////////////////////////////////// Read an ID from EEPROM //////////////////////////////void readID( uint8_t number ) {uint8_t start = (number * 4 ) + 2; // Figure out starting positionfor ( uint8_t i = 0; i < 4; i++ ) { // Loop 4 times to get the 4 BytesstoredCard = EEPROM.read(start + i); // Assign values read from EEPROM to array}}///////////////////////////////////////// Add ID to EEPROM ///////////////////////////////////void writeID( byte a[] ) {if ( !findID( a ) ) { // Before we write to the EEPROM, check to see if we have seen this card before!uint8_t num = EEPROM.read(0); // Get the numer of used spaces, position 0 stores the number of ID cardsuint8_t start = ( num * 4 ) + 6; // Figure out where the next slot startsnum++; // Increment the counter by oneEEPROM.write( 0, num ); // Write the new count to the counterfor ( uint8_t j = 0; j < 4; j++ ) { // Loop 4 timesEEPROM.write( start + j, a[j] ); // Write the array values to EEPROM in the right position}successWrite();Serial.println(F("Succesfully added ID record to EEPROM"));}else {failedWrite();Serial.println(F("Failed! There is something wrong with ID or bad EEPROM"));}}///////////////////////////////////////// Remove ID from EEPROM ///////////////////////////////////void deleteID( byte a[] ) {if ( !findID( a ) ) { // Before we delete from the EEPROM, check to see if we have this card!failedWrite(); // If notSerial.println(F("Failed! There is something wrong with ID or bad EEPROM"));}else {uint8_t num = EEPROM.read(0); // Get the numer of used spaces, position 0 stores the number of ID cardsuint8_t slot; // Figure out the slot number of the carduint8_t start; // = ( num * 4 ) + 6; // Figure out where the next slot startsuint8_t looping; // The number of times the loop repeatsuint8_t j;uint8_t count = EEPROM.read(0); // Read the first Byte of EEPROM that stores number of cardsslot = findIDSLOT( a ); // Figure out the slot number of the card to deletestart = (slot * 4) + 2;looping = ((num - slot) * 4);num--; // Decrement the counter by oneEEPROM.write( 0, num ); // Write the new count to the counterfor ( j = 0; j < looping; j++ ) { // Loop the card shift timesEEPROM.write( start + j, EEPROM.read(start + 4 + j)); // Shift the array values to 4 places earlier in the EEPROM}for ( uint8_t k = 0; k < 4; k++ ) { // Shifting loopEEPROM.write( start + j + k, 0);}successDelete();Serial.println(F("Succesfully removed ID record from EEPROM"));}}///////////////////////////////////////// Check Bytes ///////////////////////////////////boolean checkTwo ( byte a[], byte b[] ) {if ( a[0] != 0 ) // Make sure there is something in the array firstmatch = true; // Assume they match at firstfor ( uint8_t k = 0; k < 4; k++ ) { // Loop 4 timesif ( a[k] != b[k] ) // IF a != b then set match = false, one fails, all failmatch = false;}if ( match ) { // Check to see if if match is still truereturn true; // Return true}else {return false; // Return false}}///////////////////////////////////////// Find Slot ///////////////////////////////////uint8_t findIDSLOT( byte find[] ) {uint8_t count = EEPROM.read(0); // Read the first Byte of EEPROM thatfor ( uint8_t i = 1; i <= count; i++ ) { // Loop once for each EEPROM entryreadID(i); // Read an ID from EEPROM, it is stored in storedCard[4]if ( checkTwo( find, storedCard ) ) { // Check to see if the storedCard read from EEPROM// is the same as the find[] ID card passedreturn i; // The slot number of the cardbreak; // Stop looking we found it}}}///////////////////////////////////////// Find ID From EEPROM ///////////////////////////////////boolean findID( byte find[] ) {uint8_t count = EEPROM.read(0); // Read the first Byte of EEPROM thatfor ( uint8_t i = 1; i <= count; i++ ) { // Loop once for each EEPROM entryreadID(i); // Read an ID from EEPROM, it is stored in storedCard[4]if ( checkTwo( find, storedCard ) ) { // Check to see if the storedCard read from EEPROMreturn true;break; // Stop looking we found it}else { // If not, return false}}return false;}///////////////////////////////////////// Write Success to EEPROM ///////////////////////////////////// Flashes the green LED 3 times to indicate a successful write to EEPROMvoid successWrite() {digitalWrite(blueLed, LED_OFF); // Make sure blue LED is offdigitalWrite(redLed, LED_OFF); // Make sure red LED is offdigitalWrite(greenLed, LED_OFF); // Make sure green LED is ondelay(200);digitalWrite(greenLed, LED_ON); // Make sure green LED is ondelay(200);digitalWrite(greenLed, LED_OFF); // Make sure green LED is offdelay(200);digitalWrite(greenLed, LED_ON); // Make sure green LED is ondelay(200);digitalWrite(greenLed, LED_OFF); // Make sure green LED is offdelay(200);digitalWrite(greenLed, LED_ON); // Make sure green LED is ondelay(200);}///////////////////////////////////////// Write Failed to EEPROM ///////////////////////////////////// Flashes the red LED 3 times to indicate a failed write to EEPROMvoid failedWrite() {digitalWrite(blueLed, LED_OFF); // Make sure blue LED is offdigitalWrite(redLed, LED_OFF); // Make sure red LED is offdigitalWrite(greenLed, LED_OFF); // Make sure green LED is offdelay(200);digitalWrite(redLed, LED_ON); // Make sure red LED is ondelay(200);digitalWrite(redLed, LED_OFF); // Make sure red LED is offdelay(200);digitalWrite(redLed, LED_ON); // Make sure red LED is ondelay(200);digitalWrite(redLed, LED_OFF); // Make sure red LED is offdelay(200);digitalWrite(redLed, LED_ON); // Make sure red LED is ondelay(200);}///////////////////////////////////////// Success Remove UID From EEPROM ///////////////////////////////////// Flashes the blue LED 3 times to indicate a success delete to EEPROMvoid successDelete() {digitalWrite(blueLed, LED_OFF); // Make sure blue LED is offdigitalWrite(redLed, LED_OFF); // Make sure red LED is offdigitalWrite(greenLed, LED_OFF); // Make sure green LED is offdelay(200);digitalWrite(blueLed, LED_ON); // Make sure blue LED is ondelay(200);digitalWrite(blueLed, LED_OFF); // Make sure blue LED is offdelay(200);digitalWrite(blueLed, LED_ON); // Make sure blue LED is ondelay(200);digitalWrite(blueLed, LED_OFF); // Make sure blue LED is offdelay(200);digitalWrite(blueLed, LED_ON); // Make sure blue LED is ondelay(200);}////////////////////// Check readCard IF is masterCard ///////////////////////////////////// Check to see if the ID passed is the master programing cardboolean isMaster( byte test[] ) {if ( checkTwo( test, masterCard ) )return true;elsereturn false;} så det jeg trenger hjelp til er jo å få "reley 4" til å bli et "intern" rele på arduino som aktiverer en inngang som en knapp er trykket til, når knappen blir trykket inn etter at RIFD sensoren er aktivert så slår et rele seg på helt til man aktiverer RFID og trykker inn knappen igjen.. skal også gjøre noe av det samme med 3 andre rele bare uten RFID sensoren først men det tar jeg å prøver på etter jeg har fått RFID og en push knapp til å funke EDIT: har fått litt mere til. må bare få alt over på et arduino kort, bruker utangen som er til relet til en bryter heller, så når "rele" utgangen er aktiv så kan jeg bruke push knappen.. funker med 2 arduino kort så må bare få alt inn i en og samme kode. Endret 22. april 2017 av iam99pk Lenke til kommentar
iam99pk Skrevet 24. april 2017 Rapporter Del Skrevet 24. april 2017 Noen her som er gode på Arduino kode som vil lage noe for meg, mot noen kroner i betaling.. Skulle gjærne gjort det selv men da jeg ikke kan så mye om Arduino kodingen og ikke har tid til å sette meg inn i det nå også haster prosjektet litt nå.. Koden i forje innlegg jeg la ut funker bra til å begynne med, altså du har RFID sensoren, lys MasterCard og wipe kanpp Har tengte å måtte scanne et kort/brikke, blir den godkjent så har du f.eks 10sek på deg til å trykke på en knapp, gjør du det så slår et rele seg på helt til du gjør det samme igjen. Altså for å skru av og på relet må det ver en godkjent brikke og trykket inn en push knapp. Er det ikke et godkjent kort så skjer det ikke noe.. MasterCard kan legge til og fjerne kort Skal også ha 3 andre knapper som kjører uavhengig av alt det andre. Trykker du på knapp 1 så slår rele 1 seg på eller av (avhengig av hva det var før du trykker på knappen) Trykker du på knapp 2 så slår rele 2 deg på eller av Trykker du på knapp 3 så slår rele 3 seg på eller av Skal bruke er Arduino mega kort og en RFID RC522 sensor og 4 push kanpper, kjører et egen rele modul kort. Hvis noe gidder å gjøre dette for meg (sikkert lett for dere som kan det) så send meg en melling så tar vi det der ifra :-) Lenke til kommentar
iam99pk Skrevet 28. mai 2017 Rapporter Del Skrevet 28. mai 2017 trenger litt hjelp.. hva må jeg forandre på? har koblet push knappene ifra arduion, igjennom push knappen og ned i GND.. når jeg trykker på en knapp så gikk det på flere rele også når jeg slapp knappen så slo alle seg av igjen.. så prøvde jeg å fjerne alt utenom "power" og da funket det likt bare med 1 rele, altså når jeg har knappen trykket inn så er releet på men når jeg slipper den så slår releet seg av.. MEN når jeg prøvde med led lys så skrudde lyset seg av og på som det skulle.. int inpower = 2;int inwhite = 3;int inred = 4;int ingreen = 5;int inblue = 6;int outpower = 37;int outwhite = 31;int outred = 32;int outgreen = 33;int outblue = 34;int statepower = LOW;int statewhite = LOW;int statered = LOW;int stategreen = LOW;int stateblue = LOW;int readingpower;int readingwhite;int readingred;int readinggreen;int readingblue;int previouspower = HIGH;int previouswhite = HIGH;int previousred = HIGH;int previousgreen = HIGH;int previousblue = HIGH;long timepower = 0;long timewhite = 0;long timered = 0;long timegreen = 0;long timeblue = 0;long debouncepower = 500;long debouncewhite = 500;long debouncered = 500;long debouncegreen = 500;long debounceblue = 500;void setup(){pinMode(inpower, INPUT_PULLUP);pinMode(inwhite, INPUT_PULLUP);pinMode(inred, INPUT_PULLUP);pinMode(ingreen, INPUT_PULLUP);pinMode(inblue, INPUT_PULLUP);pinMode(outpower, OUTPUT),pinMode(outwhite, OUTPUT);pinMode(outred, OUTPUT);pinMode(outgreen, OUTPUT);pinMode(outblue, OUTPUT);}void loop(){readingpower = digitalRead(inpower);if (readingpower == HIGH && previouspower == LOW && millis() - timepower > debouncepower) {if (statepower == HIGH)statepower = LOW;elsestatepower = HIGH;timepower = millis();}digitalWrite(outpower, statepower);previouspower = readingpower;readingwhite = digitalRead(inwhite);if (readingwhite == HIGH && previouswhite == LOW && millis() - timewhite > debouncewhite) {if (statewhite == HIGH)statewhite = LOW;elsestatewhite = HIGH;timewhite = millis();}digitalWrite(outwhite, statewhite);previouswhite = readingwhite;readingred = digitalRead(inred);if (readingred == HIGH && previousred == LOW && millis() - timered > debouncered) {if (statered == HIGH)statered = LOW;elsestatered = HIGH;timered = millis();}digitalWrite(outred, statered);previousred = readingred;readinggreen = digitalRead(ingreen);if (readinggreen == HIGH && previousgreen == LOW && millis() - timegreen > debouncegreen) {if (stategreen == HIGH)stategreen = LOW;elsestategreen = HIGH;timegreen = millis();}digitalWrite(outgreen, stategreen);previousgreen = readinggreen;readingblue = digitalRead(inblue);if (readingblue == HIGH && previousblue == LOW && millis() - timeblue > debounceblue) {if (stateblue == HIGH)stateblue = LOW;elsestateblue = HIGH;timeblue = millis();}digitalWrite(outblue, stateblue);previousblue = readingblue;} Lenke til kommentar
Hårek Skrevet 28. mai 2017 Forfatter Rapporter Del Skrevet 28. mai 2017 Hvis jeg forstår deg riktig så fungerer det med LED, men ikke med rele? En forskjell på LED og rele er at et rele gir fra seg energi når det kobles fra, og den energien kan forstyrre kretsen. Har du koblet en diode over releet? Lenke til kommentar
iam99pk Skrevet 29. mai 2017 Rapporter Del Skrevet 29. mai 2017 Hvis jeg forstår deg riktig så fungerer det med LED, men ikke med rele? En forskjell på LED og rele er at et rele gir fra seg energi når det kobles fra, og den energien kan forstyrre kretsen. Har du koblet en diode over releet? fikk det til, var at jeg kjørte strøm ifra usb til arduino og resten av kresten gikk på annen psu.. koblet 5v og GND inn på arduino pinnen så funket det som det skulle Lenke til kommentar
Twined Skrevet 9. juli 2017 Rapporter Del Skrevet 9. juli 2017 Hei! Skulle gjerne hatt litt hjelp angående en Arduino kode. Lager et spill, som består av 4 led-knapper, og en Arduino uno. For å starte spillet trykker man 2 ganger på en av de 4 knappene. Når spille starter vil en av de 4 knappene lyse og du må trykke på den for at den skal skru seg av. Etterhvert vil en annen knapp lyset, sånn er spillet helt til man trykker 2 ganger på en av knappene, da vil spillet stoppet. Om det er mulig, så hadde det vært kult om tiden mellom lysene i knappene kom i forskjellig tempo. Er dette mulig? Martin Lenke til kommentar
tingo Skrevet 9. juli 2017 Rapporter Del Skrevet 9. juli 2017 I utgangspunktet: alt er mulig. Simon Says er et ganske enkelt spill, slik det er laget for Ardunio og andre mikrokontrollere. Her er et par, tre eksempler: https://learn.sparkfun.com/tutorials/sik-experiment-guide-for-arduino---v32/experiment-16-simon-says https://create.arduino.cc/projecthub/Arduino_Scuola/a-simple-simon-says-game-25ba99 https://www.hackster.io/Metonymy/arduino-simple-simon-says-351b9e Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå