কীভাবে একটি সাধারণ অ্যানোড 7-বিভাগ, 4-অঙ্কের প্রদর্শন ব্যবহার করবেন?


9

নীচে নীচে (আমার নিজস্ব) উত্তরের উদাহরণ হিসাবে এই প্রশ্নটি নিন take

আমি একটি 7 বিভাগ, 4 ডিজিটের এলইডি ডিসপ্লে পেয়েছি, তবে কীভাবে এটি ওয়্যার করবেন সে সম্পর্কে আমার কোনও ধারণা নেই।

আমি সাধারণ আনোড / ক্যাথোডের মধ্যে পার্থক্য বুঝতে পারি না, এবং আমার প্রতি LED প্রতি 2 পিন নেই, যা অদ্ভুত। বেশ সম্প্রতি, "7 বিভাগের 4 অঙ্কের সাধারণ অ্যানোড" এর একটি প্রশ্ন মুছে ফেলা হয়েছে। সেই মুহুর্তেই আমি একটি উত্তর টাইপ করছিলাম।

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


উৎসুক. আপনি কি কোনও প্রশ্ন পোস্ট করেছেন যাতে আপনি উত্তর দিতে পারেন?
ফিলিএনজে

আসলে এর জন্য একটি বিকল্প রয়েছে। যাইহোক, আমার প্রশ্নের মন্তব্যগুলি "পটভূমির গল্প "ও বলে। আমি একটি প্রশ্নের উত্তর দিচ্ছিলাম, সেটি মুছে ফেলা হয়েছে। এবং আমার উত্তর নিরবিচ্ছিন্নভাবে পোস্ট করার একটি প্রয়োজনীয়তা অনুভব করেছি। হ্যাঁ, আমি করেছি। তবে এটি একটি বৈধ পদ্ধতি এবং প্রশ্নের আগে আমার উত্তর ছিল। সুতরাং এটি আমার কাছে বোধগম্য হয়েছিল। আপনি যদি সত্যিই একটি ভাল প্রশ্ন পেয়ে থাকেন (এবং উত্তর), আমি আপনাকে কেবল এটি করতে উত্সাহিত করতে পারি, কারণ এটি কোনও সময়ে কারও কাছে উপকারী হতে পারে।
পল

উত্তর:


7

পলের উত্তরের পরিপূরক হিসাবে, আমি কীভাবে তার চিত্রের se-বিভাগের 4-ডিজিটের প্রদর্শনটি চালাতে পারি তা দেখানোর জন্য একটি ছোট প্রোগ্রাম লিখেছিলাম:

তারের পরিকল্পিত

এটি আসলে একটি সাধারণ ক্যাথোড প্রদর্শন, সুতরাং প্রোগ্রামটি ধরে নেয় যে সেই সাথে চিত্রটির নির্দিষ্ট তারেরও। আকর্ষণীয় অংশটি হল refresh_display()ফাংশন, যা পর্যায়ক্রমে বলা উচিত। অ্যালগরিদম নিম্নরূপ:

  • আমরা যে অঙ্কটি দেখাতে চাই তার মধ্যে একটির জন্য যথাযথ সংকেত সহ 7 টি আনোড ড্রাইভ করুন
  • HIGHএনপিএন ট্রানজিস্টারের মাধ্যমে সেই অঙ্কের ক্যাথোডকে নিয়ন্ত্রণ করে এমন আউটপুট সেট করুন
  • 2.5 এমএস (100 হার্জ রিফ্রেশ হারের জন্য) অপেক্ষা করুন
  • LOWক্যাথোড-নিয়ন্ত্রণকারী আউটপুট সেট করুন
  • পরবর্তী অঙ্কে যান

এটি লক্ষ করা উচিত যে সিপিইউটি ব্লক না করে অপেক্ষার কাজটি করা হয়, ব্লিঙ্ক উইল ডিলে আরডুইনো টিউটোরিয়ালের বর্ণিত কৌশলটি ব্যবহার করে । প্রোগ্রামটি এখানে:

const int NB_DIGITS     = 4;  // 4-digit display
const int FIRST_ANODE   = 2;  // anodes a..g on pins 2..8
const int FIRST_CATHODE = 9;  // cathodes, right to left, on pins 9..12

// Digits to display, from right to left.
uint8_t digits[NB_DIGITS];

// Set all the used pins as outputs.
void init_display()
{
    for (int i = 0; i < 7; i++)
        pinMode(FIRST_ANODE + i, OUTPUT);
    for (int i = 0; i < NB_DIGITS; i++)
        pinMode(FIRST_CATHODE + i, OUTPUT);
}

// This should be called periodically.
void refresh_display()
{
    // Our 7-segment "font".
    static const uint8_t font[10] = {
        //abcdefg
        0b1111110, // 0
        0b0110000, // 1
        0b1101101, // 2
        0b1111001, // 3
        0b0110011, // 4
        0b1011011, // 5
        0b1011111, // 6
        0b1110000, // 7
        0b1111111, // 8
        0b1111011  // 9
    };

    // Wait for 2.5 ms before switching digits.
    static uint32_t last_switch;
    uint32_t now = micros();
    if (now - last_switch < 2500) return;
    last_switch = now;

    // Switch off the current digit.
    static uint8_t pos;
    digitalWrite(FIRST_CATHODE + pos, LOW);

    // Set the anodes for the next digit.
    pos = (pos + 1) % NB_DIGITS;
    uint8_t glyph = font[digits[pos]];
    for (int i = 0; i < 7; i++)
        digitalWrite(FIRST_ANODE + i, glyph & 1 << (6-i));

    // Switch digit on.
    digitalWrite(FIRST_CATHODE + pos, HIGH);
}

/***********************************************************************
 * Example usage.
 */

void setup()
{
    init_display();
}

void loop()
{
    uint32_t now = millis();

    // Change the number displayed every second.
    static uint32_t last_change;
    if (now - last_change >= 1000) {
        digits[3] = digits[2];
        digits[2] = digits[1];
        digits[1] = digits[0];
        digits[0] = (digits[0] + 1) % 10;
        last_change = now;
    }

    refresh_display();
}

পল প্যারালাক্সের একটি টিউটোরিয়ালের লিঙ্ক সরবরাহ করেছিলেন যা মাল্টিপ্লেক্স 7 সেগ আরডুইনো লাইব্রেরি ব্যবহার করার পরামর্শ দেয় । সেই লাইব্রেরি উপরের উদাহরণ কোডের চেয়ে বেশি সাধারণ, কারণ এটি ব্যবহৃত পিনগুলি সম্পর্কে অনুমান করে না। তবে লাইব্রেরি এবং এই কোডের মধ্যে বড় পার্থক্যটি সময় পরিচালনা করার পদ্ধতিতে হয়:

  • লাইব্রেরি টাইমার 2 ওভারফ্লো বাধা দ্বারা চালিত হয়। এই কাজের জন্য একটি টাইমার নিবেদিত ব্যয় করে এটি একটি খুব স্থির সময় সরবরাহ করতে হবে।
  • উপরের কোডটি ব্যবহারকারীদের refresh_display()পর্যাপ্ত পরিমাণে কল করার উপর নির্ভর করে । এটির জন্য ডেডিকেটেড হার্ডওয়্যার সংস্থান প্রয়োজন হয় না, তবে এটি এমন প্রোগ্রামগুলির সাথে ভাল খেলতে পারে না যেগুলি খুব বেশি সময় নেয় loop(): এটি আপনাকে কল করা পছন্দ করবে না delay()

এ কারণেই আমি ওপেন-সোর্স স্টাফ পছন্দ করি। আপনি বিশ্বের অন্যান্য অংশের সাথে কাজের চাপ ভাগ করে নিতে পারেন এবং সত্যিই খুব সুন্দর কিছু তৈরি করতে পারেন। যা আবার পৃথিবীর সাথে আবার ভাগ করা হয় :) আপনি অন্যান্য বিকাশকারীদের কাছ থেকে অনেক কিছু শিখতে পারেন এবং সেই জ্ঞানটি অবিরাম থাকবে এবং কেবল অন্য সবার থেকে গোপন নয়।
পল

ট্র্যানিস্টরের বেস প্রতিরোধকের মান সম্পর্কে আমার মনে একটি প্রশ্ন রয়েছে। রেজিস্টরের মান গণনা করতে আমার একটি দুর্দান্ত সমস্যা আছে। চার 2N2222 ট্রানজিস্টারে 4.7K রোধকারী ব্যবহার করার কারণ কী? যদি কোনও একক বিভাগ 10 এমএ গ্রাস করে তবে ডিপি সহ সমস্ত বিভাগের জন্য সর্বাধিক 80mA বর্তমান অঙ্কন থাকবে। যদি V (BE * sat) = 1.3v এবং I (B) = 15mA হয় তবে 300hm যথেষ্ট হবে। আমার হিসাব নিয়ে কোন ভুল আছে?
মারুফ

@ মারুফ: সর্বনিম্ন প্রয়োজনীয় আই_বি হ'ল প্রত্যাশিত আই_সি হ'ল ন্যূনতম ট্রানজিস্টর লাভ দ্বারা বিভক্ত। আপনি যদি সংগ্রাহকের কাছে 80 এমএ চান এবং কমপক্ষে 100 টি লাভের আশা করেন (এটি আশাবাদী হতে পারে, আমি ডেটাশিটটি পরীক্ষা করে দেখিনি), তবে বেসটিতে আপনার কমপক্ষে 80/100 = 0.8 এমএ প্রয়োজন। তারপরে বেস প্রতিরোধকের সর্বাধিক মান হ'ল এটির বর্তমান ভোল্টেজ ড্রপ (প্রায় 5 ভি - 0.7 ভি) সেই বর্তমান দ্বারা বিভক্ত বা প্রায় 5.3 কিলোমিটার Ω
এডগার বোনেট

5

আমি চেষ্টা করব এবং আপনাকে এলইডি ইত্যাদির সম্পূর্ণ বুনিয়াদিগুলি নিয়ে যাব কারণ 4-অঙ্কের 7-বিভাগের প্রদর্শনগুলি একাধিক "এলইডি কৌশলগুলি" এর সংমিশ্রণ।

তারের এলইডি এর

আরইডিনোর অন্যতম মজাদার বিষয় এলইডি বা হালকা নির্গমনকারী ডায়োড।

মূলত, এগুলি ব্যবহার করা সহজ, তাদের শক্তিশালী করা এবং তারা আলোকিত হবে।

তারা বিরক্তিকর হতে পারে, কারণ তাদের একধরনের মেরুতা রয়েছে, অর্থাত্ আপনি যখন তাদেরকে সঠিকভাবে টেলিগ্রাম করবেন তখন তারা কেবলমাত্র কাজ করবে। আপনি যদি ইতিবাচক এবং নেতিবাচক ভোল্টেজের বিপরীত হন তবে এগুলি মোটেই হালকা হবে না।

বিরক্তিকর এটি যেমনটি বেশ কার্যকর।

ক্যাথোড বনাম আনোড

একটি traditionalতিহ্যবাহী নেতৃত্বে, দীর্ঘ সীসা হ'ল (+), আনোড। অন্য সীসা হ'ল (-) ক্যাথোড।

"বা, যদি কেউ পা ছাঁটাই করেন তবে এলইডি এর বাইরের কেসিংয়ের উপর সমতল প্রান্তটি সন্ধান করার চেষ্টা করুন flat - স্পার্কফুন

উত্স: https://learn.sparkfun.com/tutorials/polarity/diode-and-led-polarity

Sparkfun

বেসিক তারের

আমি এটি সঠিক কিনা তা নিশ্চিত নই, যেহেতু আমি ইন্টারনেট থেকে চিত্রটি ছিঁড়ে ফেলেছি।

বেসিক এলইডি তারের

একটি এলইডি ওয়্যারিং বেশ সহজ, আনোড (+) ইতিমধ্যে একটি সীমাবদ্ধ প্রতিরোধকের মাধ্যমে ইতিবাচক ভোল্টেজের সাথে সংযোগ স্থাপন করে। ক্যাথোড (-) স্থলভাগের সাথে সংযোগ স্থাপন করে (বর্তমান সীমাবদ্ধ প্রতিরোধকের সাথে, যদি আপনার ইতিবাচক দিক না থাকে)।

বর্তমান সীমিত প্রতিরোধক এলইডি সংক্ষিপ্তকরণ থেকে বিরত হবে, এলইডি বা মাইক্রোকন্ট্রোলার / আরডুইনোর ক্ষতি করে।

একাধিক এলইডি, ম্যাট্রিক, আরজিবি নেতৃত্বে

একাধিক এলইডি'র সাথে আপনি প্রায়শই তাদের পজিটিভ দিকটি সংযুক্ত (+), "সাধারণ আনোড" বা সমস্ত (-) "কমন ক্যাথোড" এর সাথে সংযুক্ত রাখেন।

মূলত এটি এখানে নেমে আসবে।

আরজিবি সাধারণ ক্যাথোড / আনোড

একটি সাধারণ ক্যাথোডের জন্য, আপনি যে পিনগুলি রাখতে চান তা বর্তমান সরবরাহ করে।

একটি সাধারণ আনোডের জন্য, আপনি এলইডি মাধ্যমে স্রোত ডুবিয়ে দিন।

মাল্টিপ্লেক্সিং (একাধিক সংখ্যা, 7-বিভাগ)

আপনি প্যারালাক্স এর টিউটোরিয়াল পরীক্ষা করা উচিত: http://learn.parallax.com/4-digit-7-segment-led-display-arduino-demo

প্যারালাক্স 4 ডিজিট 7 সেগ

আপনি যখন অনেকগুলি এলইডি পেয়ে থাকেন, এটি প্রায়শই তাদের "মাল্টিপ্লেক্স" এ স্মার্ট হয়। সাধারণত আপনি এলইডি'র দ্রুত "গোষ্ঠীগুলির" মধ্য দিয়ে যান, যাতে দেখে মনে হয় যে তারা একই সাথে সমস্ত কিছু চালিয়ে যাচ্ছে।

সাধারণত আপনি এলইডি'র কলাম থেকে কারেন্টটি ডুবিয়ে দেন এবং সারির পৃথক এলইডিতে বর্তমান সরবরাহ করেন।

অথবা, আপনি এলইডি'র কলামে কারেন্ট সরবরাহ করে এবং সারির পৃথক এলইডি থেকে কারেন্ট ডুবিয়ে দেন।

যাতে আপনি চয়ন করতে পারেন কোন কলামটি সক্রিয় করতে হবে এবং কোনটি কলামটির আলোকে আলোকিত করবে। এই কলামগুলি / সারিগুলি দ্রুত পরিবর্তন করা আপনাকে অনেক কম পিনের সাহায্যে একাধিক এলইডি নিয়ন্ত্রণ করতে সক্ষম করবে।

এমনকি এটির জন্য ডিসপ্লে কন্ট্রোলারও রয়েছে, যদি আপনি নিজের সফ্টওয়্যারটিতে স্যুইচিংয়ের যত্ন নিতে না চান।

সুতরাং আপনার যখন একটি 4 ডিজিট, মাল্টিপ্লেক্সড 7 টি বিভাগ, সাধারণ অ্যানোড থাকে

চিত্রটি আরও এই জাতীয় হবে:

এখানে চিত্র বর্ণনা লিখুন

http://www.mytutorialcafe.com/Microcontroller%20Application%20C%207segmen.htm

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.