সুচিপত্র:

এলসিডি ডিসপ্লে এবং আরডুইনো ইউনো সহ ড্যাশবোর্ড কীবোর্ড: 9 টি ধাপ
এলসিডি ডিসপ্লে এবং আরডুইনো ইউনো সহ ড্যাশবোর্ড কীবোর্ড: 9 টি ধাপ

ভিডিও: এলসিডি ডিসপ্লে এবং আরডুইনো ইউনো সহ ড্যাশবোর্ড কীবোর্ড: 9 টি ধাপ

ভিডিও: এলসিডি ডিসপ্লে এবং আরডুইনো ইউনো সহ ড্যাশবোর্ড কীবোর্ড: 9 টি ধাপ
ভিডিও: keypad and LCD interfacing with arduino in bangla 2024, জুলাই
Anonim
Image
Image
LCD ডিসপ্লে এবং Arduino Uno সহ ড্যাশবোর্ড কীবোর্ড
LCD ডিসপ্লে এবং Arduino Uno সহ ড্যাশবোর্ড কীবোর্ড
LCD ডিসপ্লে এবং Arduino Uno সহ ড্যাশবোর্ড কীবোর্ড
LCD ডিসপ্লে এবং Arduino Uno সহ ড্যাশবোর্ড কীবোর্ড

এটি একটি ম্যাট্রিক্স কীবোর্ড যা একটি এলসিডি ডিসপ্লে এবং একটি আরডুইনো ইউনো সহ চলমান, সবচেয়ে মৌলিক যা আজ বিদ্যমান। এই সেটআপের উদ্দেশ্য হল একটি প্রোগ্রাম তৈরি করা যা ম্যাট্রিক্স কীবোর্ডে টাইপ করা একটি পাসওয়ার্ড গ্রহণ করে, এটি সঠিক পাসওয়ার্ডের সাথে তুলনা করে এবং ডিসপ্লেতে একটি নিশ্চিতকরণ বার্তা প্রদর্শন করে।

এটা মনে রাখা গুরুত্বপূর্ণ যে ম্যাট্রিক্স কীবোর্ড এবং এই ডিসপ্লে উভয়ই ESP8266 এবং ESP32 এর সাথে কাজ করে।

আপনি যেমন দেখতে পাচ্ছেন, আমরা একটি ইউএসবি দিয়ে আরডুইনো দিয়ে সার্কিটকে শক্তি দিই, যেহেতু আমরা কোনও বাহ্যিক উত্স ব্যবহার করছি না। আরডুইনো বন্দরে খুব সহজ উপায়ে সংযুক্ত আটটি তার আমাদের কীবোর্ডের সংযোগ তৈরি করে। এই কীবোর্ডের কোন ক্ষমতা নেই এবং এটি প্যাসিভ, যা সংযোগগুলিকে ব্যাপকভাবে সহজ করে।

ডিসপ্লেটি UART এর মাধ্যমে একটি Arduino এর সাথে সংযুক্ত, সিরিয়াল পোর্ট, যা ডিভাইসটিকে ক্ষমতাও দেয়।

একটি বিক্ষোভে, আমরা ভিডিওতে দেখাই আমাদের সার্কিট চেক করা হচ্ছে কিবোর্ডে টাইপ করা পাসওয়ার্ড সঠিক কিনা।

ভিডিওতে ব্যবহৃত পিডিএফ এবং এখানে উপলব্ধ, আমাদের কাছে চিপের সম্পূর্ণ পিনআউট রয়েছে।

ধাপ 1: সিরিয়াল প্রদর্শন

সিরিয়াল ডিসপ্লে
সিরিয়াল ডিসপ্লে
সিরিয়াল ডিসপ্লে
সিরিয়াল ডিসপ্লে

এটি সিরিয়াল ডিসপ্লে যা UART এর সাথে যোগাযোগ করে, যা একটি TXRX এর সাথে RS। এটি I2C সংস্করণগুলিতেও বিদ্যমান, তবে অন্যান্য মডেলগুলি আসন্ন সমাবেশের জন্য থাকবে। এই ক্ষেত্রে, এই প্রদর্শনটি UART দ্বারা RS দ্বারা কাজ করে।

ধাপ 2: ম্যাট্রিক্স কীবোর্ড

ম্যাট্রিক্স কীবোর্ড
ম্যাট্রিক্স কীবোর্ড

ম্যাট্রিক্স কীবোর্ডের উদাহরণ যা আমরা ব্যবহার করি তা হল ছবির, এবং এটি ডান দিকে। আমাদের একটি ডায়াগ্রাম আছে যা দেখায় কিভাবে এটি কাজ করে। এটি আসলে 4x4 লাইন আছে। সুতরাং, এটি তারের সর্বনিম্ন পরিমাণ ব্যবহার করে; প্রতিটি সারি এবং কলামের জন্য একটি তার, যাতে মোট আটটি তার থাকে।

এর শক্তির প্রয়োজন নেই কারণ এটি নিম্নরূপ কাজ করে: যখন 7 টি চাপানো হয়, কীবোর্ড 7 টি তুলে নেয় এবং লাইন এবং কলামের সাথে সংযোগ স্থাপন করে, যা স্বয়ংক্রিয়ভাবে অ্যালগরিদম স্ক্যান করে সনাক্তকরণ সম্ভব করে।

এটা মনে রাখা গুরুত্বপূর্ণ যে ডট ম্যাট্রিক্সের যেকোন 4x4 কীবোর্ড এই সমাবেশে কাজ করবে।

ধাপ 3: সমাবেশ

সমাবেশ
সমাবেশ

সাধারণ স্কিমে, আমরা আটটি তারের সরাসরি Arduino এর পোর্টের সাথে সংযুক্ত করি, যেহেতু কীবোর্ডের কোন ক্ষমতা নেই। ডিসপ্লেতে, আমাদের RS 232 এর একটি সংকেত, এবং ইতিবাচক এবং নেতিবাচক শক্তি রয়েছে। ব্যাকলাইট এখনও বিদ্যমান, যা ইতিমধ্যেই সংযুক্ত (BKL দ্বারা চিহ্নিত)।

ধাপ 4: সোর্স কোড

এই প্রকল্পের সোর্স কোডে, আপনাকে সিরিয়াল এবং কীপ্যাড অন্তর্ভুক্ত করতে হবে। এটিতে একটি সেট RX_PIN এবং একটি TX_PIN আছে, যা সিরিয়াল সফটওয়্যারের জন্য প্রয়োজনীয়, এবং ইনভার্টেড ১। এটিকে উল্টানো যুক্তির সাথে ইনপুট ব্যবহার করে এমন সিগন্যালকে বাড়ানোর জন্য নীচে রাখা হয়েছিল।

// biblioteca responsável pela comunicação com o display LCD #include // biblioteca responsável por capturar a tecla que foi pressionada no teclado #include // pino invalido apenas usado no contrutor do SoftwareSerial #define RX_PIN 255 // Pino TXo Nossa Nossa এলসিডি প্রদর্শন করুন

ধাপ 5: প্রদর্শন কমান্ড

ডিসপ্লে কমান্ড
ডিসপ্লে কমান্ড

গুরুত্বপূর্ণ: এই ডিসপ্লেতে কেবল একটি স্ট্রিং লাগানো যথেষ্ট নয়। আপনাকে নিয়ন্ত্রণ অক্ষর পাঠাতে হবে। পিডিএফটিতে সেই সাইটের লিঙ্ক রয়েছে যেখানে আপনার এই প্রদর্শনের একটি ম্যানুয়াল রয়েছে। কিন্তু আপনার যদি অন্য ব্র্যান্ডের সিরিয়াল ডিসপ্লে থাকে, তাহলে তাদের সাথে সম্পর্কিত তাদের কন্ট্রোল কোডগুলি দেখে নেওয়া ভাল। এই মডেলে, উদাহরণস্বরূপ, যখন আমরা একটি নির্দিষ্ট নিয়ন্ত্রণ পাঠাই (উদাহরণস্বরূপ এই ডিসপ্লের জন্য তথ্য), আমাদের যোগাযোগের জন্য 254 নম্বর একটি উপসর্গ পাঠাতে হবে।

তাই আমরা জিনিসগুলিকে সহজতর করার জন্য একটি ARRAY স্থাপন করি, যা একটি ভেরিয়েবলের একটি সংগ্রহ যা একটি সংখ্যাসূচক সূচকে অ্যাক্সেস করা হয়। এটি প্রাথমিক কনফিগারেশন হিসাবে ডিসপ্লেতে পাঠানো হবে।

// comando para limpar toda a tela do displayconst char limparTela = {254, 1}; // comandos de configuração inicial/ * 254, 254 acende o backlight 254, 1 limpa a tela 254, 253, 1 configura o contraste em nível alto 254, 13 liga o cursor paraficar piscando */const char configInicial = {254, 254, 254, 1, 254, 253, 1, 254, 13};

ধাপ 6: কীবোর্ড অপারেশন

কীবোর্ড কিভাবে কাজ করে? প্রথমত, এটি একটি অ্যারে মাউন্ট করে। এই অ্যারেটি সেই চরিত্রের যা আসলে সেখানে প্রদর্শিত হবে। সুতরাং যদি আমি একটি X রাখি, যখন আমি উপরের প্রথম বাম বোতাম টিপব, এটি প্রদর্শিত হবে। এটি কীবোর্ডের বিষয়বস্তু, যা এটি নির্দেশ করবে।

এই কিবোর্ডের ARRAY এর ক্ষেত্রে আমাদের অন্যান্য জিনিসগুলির সংজ্ঞা হল সারি সংখ্যা 4 এবং কলাম নম্বর 4। আমাদের এখনও লাইনের পিন রয়েছে, যা হল Arduino পিন এবং কলামের পিন। প্রতীক, পিন, সারি এবং কলাম প্যারামিটার সহ আমাদের এখনও একটি কাস্টম কেপ্যাড কীপ্যাড নির্মাতা আছে।

const বাইট LINHAS = 4; // número de linhas do tecladoconst byte COLUNAS = 4; // número de colunas do teclado // define uma matriz com os símbolos que deseja ser lido do teclado char SIMBOLOS [LINHAS] [COLUNAS] = {{'A', '1', '2', '3'}, { 'B', '4', '5', '6'}, {'C', '7', '8', '9'}, {'D', 'c', '0', 'e '}}; বাইট PINOS_LINHA [LINHAS] = {8, 9, 10, 11}; // pinos que indicam as linhas do teclado byte PINOS_COLUNA [COLUNAS] = {4, 5, 6, 7}; // pinos que indicam as colunas do teclado // instancia de Keypad, responsável por capturar a tecla pressionada Keypad customKeypad = Keypad (makeKeymap (SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);

ধাপ 7: পাসওয়ার্ড সেটিং

এই অংশে, আমরা পাসওয়ার্ড সংজ্ঞায়িত করি, এবং তারপর আমাদের একটি পাসওয়ার্ড লিখতে হবে, যা একটি খালি স্ট্রিং। নীচে, আমরা সফটওয়্যার সিরিয়াল এর উদাহরণ রাখি।

// variáveis resposnsáveis por armazenar as senhasconst String SENHA_ESPERADA = "1234ABCD"; স্ট্রিং SENHA_DIGITADA = ""; // instancia de SoftwareSerial para nos comunicar com o সিরিয়ালের মাধ্যমে প্রদর্শন SoftwareSerial displaySerial = SoftwareSerial (RX_PIN, TX_PIN, INVERTED);

ধাপ 8: সেটআপ

সেটআপের জন্য, এখানে displaySerial.begin (2, 400), যা গতি সম্পর্কে। আমাদের ক্ষেত্রে, এটি একটি বাইট পাঠানোর জন্য যথেষ্ট। এটি অনুসরণ করে, 700 মিলিসেকেন্ডের জন্য অপেক্ষা করা হচ্ছে। আমরা 10 মিলিসেকেন্ডের নতুন বিলম্বের সাথে প্রাথমিক কনফিগারেশন থেকে displaySerial.print (initialConfig) অন্তর্ভুক্ত করি, এবং আমরা স্টার্ট ফাংশনে যাই। স্টার্ট ফাংশনে, আমরা displaySerial.print ("পাসওয়ার্ড:") রাখি।

অকার্যকর সেটআপ () {Serial.begin (2400); // inicializando a serial de comunicação com o display // importante o baud rate ser de 2400 displaySerial.begin (2400); // tempo de espera pela inicialização do display delay (700); // seta a configuração inicial do display displaySerial.print (configInicial); বিলম্ব (10); ইনিসিও (); } // função responsável por imprimir na tela a mensagem para digitar a senha // é chamada toda vez q a senha foi digitada e comparada, também quando // a tecla limpar display foi pressionada। অকার্যকর inicio () {displaySerial.print ("Senha:"); }

ধাপ 9: লুপ

লুপে, আমরা একটি customKey = customKeypad.getKey () তৈরি করি এবং ক্রম অনুসারে, আমরা একটি সুইচ কমান্ড লিখি।

// captura a tecla pressionada do teclado char customKey = customKeypad.getKey (); // caso alguma tecla foi pressionada if (customKey) {Serial.println (customKey); সুইচ (customKey) { /… /}}

লুপ সুইচ পার্ট 1

সুইচ কমান্ডের ভিতরে: এটি মুদ্রণযোগ্য কীগুলির সম্ভাব্যতার তালিকা দেখায়, যদি টিপে থাকে, এবং পাসওয়ার্ড বৃদ্ধি করে: কাস্টমকে নেয় এবং প্রবেশ করা পাসওয়ার্ডটি সংযুক্ত করে। পরবর্তী, displaySerial.print (customKey) মূল বিষয়বস্তু দেখায়।

সুইচ (customKey) {// caso alguma das teclas imprimíveis foi pressionada case 'A': case 'B': case 'C': case 'D': case '0': case '1': case '2' case '3': case '4': case '5': case '6': case '7': case '8': case '9': // concatena o novo símbolo a senha que estamos digitando SENHA_DIGITADA+= customKey; Serial.println (SENHA_DIGITADA); // imrpime na tela o símbolo pressionado displaySerial.print (customKey); বিরতি;

লুপ সুইচ পার্ট 2

এই কোডে, CLEAR কী টিপে থাকলে আমরা একটি দৃশ্য দেখাই। যদি আপনি C অক্ষরটি টাইপ করেন এবং আপনার টাইপ করা পাসওয়ার্ড ধারণকারী পরিবর্তনশীলটি সাফ করেন, তাহলে এটি পর্দা সাফ করার জন্য কমান্ডকে কল করে এবং পুনরায় চালু হয়।

// caso a tecla CLEAR tenha sido pressionada case 'c': // limpa a variável que guarda a senha que está sendo digitada SENHA_DIGITADA = ""; // চাম ও কম্যান্ডো প্যারা লিম্পার এ টেলা ডিসপ্লেসিরিয়াল ডিপ্রিন্ট (লিম্পারটেলা); // একটি mensagem para digitar a senha inicio (); বিরতি;

লুপ সুইচ পার্ট 3

আরেকটি সম্ভাবনা হল যদি আপনি E অক্ষরটি টাইপ করেন। এই ক্ষেত্রে, প্রবেশ করা পাসওয়ার্ডটি সঠিক বা ভুল হলে পর্দা পরিষ্কার এবং বিশ্লেষণ করা হবে। এরপরে, আমরা 2 সেকেন্ডের একটি নতুন বিলম্ব দেব, পর্দা সাফ করব, পাসওয়ার্ড ভেরিয়েবল রিসেট করব এবং শুরুতে ফিরে যাব।

// caso a tecla ENTER seja pressionada, devemos comparr as senhas case 'e': // limpa a tela displaySerial.print (limparTela); // se a senha digitada foi igual a ESPERADA if (SENHA_ESPERADA == SENHA_DIGITADA) {Serial.println ("Senha Correta!"); // imprime mensagem de senha correta displaySerial.print ("Senha Correta !!!"); } // caso senha esteja errada else {Serial.println ("Senha Incorreta!"); // imprime mensagem de senha incomreta displaySerial.print ("Senha Incorreta!"); } // aguarda 2 segundos para limpar a tela novamente e esperar uma nova senha ser digitada delay (2000); displaySerial.print (limparTela);

প্রস্তাবিত: